primitive.rs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. use const_serialize::{deserialize_const, serialize_const, ConstVec};
  2. #[test]
  3. fn test_serialize_const_layout_primitive() {
  4. let mut buf = ConstVec::new();
  5. buf = serialize_const(&1234u32, buf);
  6. if cfg!(feature = "test-big-endian") {
  7. assert_eq!(buf.as_ref(), 1234u32.to_be_bytes());
  8. } else {
  9. assert_eq!(buf.as_ref(), 1234u32.to_le_bytes());
  10. }
  11. let buf = buf.read();
  12. assert_eq!(deserialize_const!(u32, buf).unwrap().1, 1234u32);
  13. let mut buf = ConstVec::new();
  14. buf = serialize_const(&1234u64, buf);
  15. if cfg!(feature = "test-big-endian") {
  16. assert_eq!(buf.as_ref(), 1234u64.to_be_bytes());
  17. } else {
  18. assert_eq!(buf.as_ref(), 1234u64.to_le_bytes());
  19. }
  20. let buf = buf.read();
  21. assert_eq!(deserialize_const!(u64, buf).unwrap().1, 1234u64);
  22. let mut buf = ConstVec::new();
  23. buf = serialize_const(&1234i32, buf);
  24. if cfg!(feature = "test-big-endian") {
  25. assert_eq!(buf.as_ref(), 1234i32.to_be_bytes());
  26. } else {
  27. assert_eq!(buf.as_ref(), 1234i32.to_le_bytes());
  28. }
  29. let buf = buf.read();
  30. assert_eq!(deserialize_const!(i32, buf).unwrap().1, 1234i32);
  31. let mut buf = ConstVec::new();
  32. buf = serialize_const(&1234i64, buf);
  33. if cfg!(feature = "test-big-endian") {
  34. assert_eq!(buf.as_ref(), 1234i64.to_be_bytes());
  35. } else {
  36. assert_eq!(buf.as_ref(), 1234i64.to_le_bytes());
  37. }
  38. let buf = buf.read();
  39. assert_eq!(deserialize_const!(i64, buf).unwrap().1, 1234i64);
  40. let mut buf = ConstVec::new();
  41. buf = serialize_const(&true, buf);
  42. assert_eq!(buf.as_ref(), [1u8]);
  43. let buf = buf.read();
  44. assert!(deserialize_const!(bool, buf).unwrap().1);
  45. let mut buf = ConstVec::new();
  46. buf = serialize_const(&0.631f32, buf);
  47. if cfg!(feature = "test-big-endian") {
  48. assert_eq!(buf.as_ref(), 0.631f32.to_be_bytes());
  49. } else {
  50. assert_eq!(buf.as_ref(), 0.631f32.to_le_bytes());
  51. }
  52. let buf = buf.read();
  53. assert_eq!(deserialize_const!(f32, buf).unwrap().1, 0.631);
  54. }
  55. #[test]
  56. fn test_serialize_primitive_too_little_data() {
  57. let mut buf = ConstVec::new();
  58. buf = buf.push(1);
  59. buf = buf.push(1);
  60. buf = buf.push(1);
  61. let buf = buf.read();
  62. assert_eq!(deserialize_const!(u64, buf), None);
  63. }