1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- use const_serialize::{deserialize_const, serialize_const, ConstVec};
- #[test]
- fn test_serialize_const_layout_primitive() {
- let mut buf = ConstVec::new();
- buf = serialize_const(&1234u32, buf);
- if cfg!(feature = "test-big-endian") {
- assert_eq!(buf.as_ref(), 1234u32.to_be_bytes());
- } else {
- assert_eq!(buf.as_ref(), 1234u32.to_le_bytes());
- }
- let buf = buf.read();
- assert_eq!(deserialize_const!(u32, buf).unwrap().1, 1234u32);
- let mut buf = ConstVec::new();
- buf = serialize_const(&1234u64, buf);
- if cfg!(feature = "test-big-endian") {
- assert_eq!(buf.as_ref(), 1234u64.to_be_bytes());
- } else {
- assert_eq!(buf.as_ref(), 1234u64.to_le_bytes());
- }
- let buf = buf.read();
- assert_eq!(deserialize_const!(u64, buf).unwrap().1, 1234u64);
- let mut buf = ConstVec::new();
- buf = serialize_const(&1234i32, buf);
- if cfg!(feature = "test-big-endian") {
- assert_eq!(buf.as_ref(), 1234i32.to_be_bytes());
- } else {
- assert_eq!(buf.as_ref(), 1234i32.to_le_bytes());
- }
- let buf = buf.read();
- assert_eq!(deserialize_const!(i32, buf).unwrap().1, 1234i32);
- let mut buf = ConstVec::new();
- buf = serialize_const(&1234i64, buf);
- if cfg!(feature = "test-big-endian") {
- assert_eq!(buf.as_ref(), 1234i64.to_be_bytes());
- } else {
- assert_eq!(buf.as_ref(), 1234i64.to_le_bytes());
- }
- let buf = buf.read();
- assert_eq!(deserialize_const!(i64, buf).unwrap().1, 1234i64);
- let mut buf = ConstVec::new();
- buf = serialize_const(&true, buf);
- assert_eq!(buf.as_ref(), [1u8]);
- let buf = buf.read();
- assert!(deserialize_const!(bool, buf).unwrap().1);
- let mut buf = ConstVec::new();
- buf = serialize_const(&0.631f32, buf);
- if cfg!(feature = "test-big-endian") {
- assert_eq!(buf.as_ref(), 0.631f32.to_be_bytes());
- } else {
- assert_eq!(buf.as_ref(), 0.631f32.to_le_bytes());
- }
- let buf = buf.read();
- assert_eq!(deserialize_const!(f32, buf).unwrap().1, 0.631);
- }
- #[test]
- fn test_serialize_primitive_too_little_data() {
- let mut buf = ConstVec::new();
- buf = buf.push(1);
- buf = buf.push(1);
- buf = buf.push(1);
- let buf = buf.read();
- assert_eq!(deserialize_const!(u64, buf), None);
- }
|