1
0

str.rs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. use const_serialize::{deserialize_const, serialize_const, ConstStr, ConstVec};
  2. #[test]
  3. fn test_serialize_const_layout_str() {
  4. let mut buf = ConstVec::new();
  5. let str = ConstStr::new("hello");
  6. buf = serialize_const(&str, buf);
  7. println!("{:?}", buf.as_ref());
  8. let buf = buf.read();
  9. assert_eq!(
  10. deserialize_const!(ConstStr, buf).unwrap().1.as_str(),
  11. "hello"
  12. );
  13. }
  14. #[test]
  15. fn test_serialize_const_layout_nested_str() {
  16. let mut buf = ConstVec::new();
  17. let str = ConstStr::new("hello");
  18. buf = serialize_const(&[str, str, str] as &[ConstStr; 3], buf);
  19. println!("{:?}", buf.as_ref());
  20. let buf = buf.read();
  21. assert_eq!(
  22. deserialize_const!([ConstStr; 3], buf).unwrap().1,
  23. [
  24. ConstStr::new("hello"),
  25. ConstStr::new("hello"),
  26. ConstStr::new("hello")
  27. ]
  28. );
  29. }
  30. #[test]
  31. fn test_serialize_str_too_little_data() {
  32. let mut buf = ConstVec::new();
  33. buf = buf.push(1);
  34. let buf = buf.read();
  35. assert_eq!(deserialize_const!(ConstStr, buf), None);
  36. }