use const_str::concat_bytes; use nrbf::{RemotingMessage, Value}; #[rustfmt::skip] const INPUT: &[u8] = concat_bytes!( 0, b"\x01\x00\x00\x00", b"\xFF\xFF\xFF\xFF", b"\x01\x00\x00\x00", b"\x00\x00\x00\x00", 15, b"\x01\x00\x00\x00", b"\x02\x00\x00\x00", 9, b"\x43\x00\x00\x00\x00\x00\x00\x00", b"\x2a\x00\x00\x00\x00\x00\x00\x00", 11, ); #[test] fn array_single_primitive() { let output = RemotingMessage::Value(Value::Array(vec![Value::Int64(67), Value::Int64(42)])); assert_eq!(RemotingMessage::parse(INPUT), Ok(output)); } #[cfg(feature = "serde")] #[test] fn array_single_primitive_deserialize() { assert_eq!(nrbf::from_slice(INPUT), Ok(vec![67i64, 42i64])); assert_eq!(nrbf::from_slice(INPUT), Ok(vec![67i32, 42i32])); assert_eq!( nrbf::from_slice::<[i64; 1]>(INPUT).unwrap_err().to_string(), "invalid length 2, expected 1 element in array" ); assert_eq!(nrbf::from_slice::<[i64; 2]>(INPUT), Ok([67, 42])); assert_eq!( nrbf::from_slice::<[i64; 3]>(INPUT).unwrap_err().to_string(), "invalid length 2, expected an array of length 3" ); }