use serde::{ Deserialize };
use std::io::{ Cursor };
use rtps;
use rtps::common_types as t;
#[test]
fn deserialize_message() {
let bytes = [
82, 84, 80, 83, 20, 10, 86, 19, 0, 0, 0, 1,
0x15, 1, 0xDD, 0xEE, 0xAA, 0xDD,
0, 0, 0, 0xc4, 0, 0, 0, 0xc3, 0, 0, 0, 0, 0, 0, 0, 5,
0, 0, 0, 8, 1, 2, 3, 4, 11, 12, 13, 14, ];
let mut cursor = Cursor::new(&bytes[..]);
{
let mut de = rtps::cdr::CdrDeserializer::new(&mut cursor);
let message: rtps::Message = Deserialize::deserialize(&mut de).unwrap();
assert_eq!(message, rtps::Message {
junk: [82, 84, 80, 83],
protocol_type: rtps::common_types::ProtocolVersion::VERSION_2_2,
vendor_id: [86, 19],
submessages: vec![rtps::Submessage{
variant: rtps::SubmessageVariant::Data {
reader_id: t::EntityId{ entity_key: [0,0,0], entity_kind: t::EntityKind::BuiltInReader },
writer_id: t::EntityId{ entity_key: [0,0,0], entity_kind: t::EntityKind::BuiltInWriter },
writer_sn: 5,
serialized_payload: t::ArcBuffer::from_vec(vec![1,2,3,4, 11,12,13,14]),
}
}
]
});
}
assert_eq!(cursor.position() as usize, bytes.len());
}