1use binrw::prelude::*;
3
4#[binrw::binrw]
5#[derive(Debug, Default, PartialEq, Eq)]
6pub struct EchoMesasge {
7 #[br(assert(_structure_size == 4))]
8 #[bw(calc = 4)]
9 _structure_size: u16,
10 #[br(assert(_reserved == 0))]
11 #[bw(calc = 0)]
12 _reserved: u16,
13}
14
15pub type EchoRequest = EchoMesasge;
16pub type EchoResponse = EchoMesasge;
17
18#[cfg(test)]
19mod tests {
20 use super::*;
21
22 #[test]
23 pub fn test_echo_req_write() {
24 let mut cursor = std::io::Cursor::new(Vec::new());
25 let echo_req = EchoRequest::default();
26 echo_req.write_le(&mut cursor).unwrap();
27 assert_eq!(cursor.into_inner(), [0x4, 0x0, 0x0, 0x0])
28 }
29
30 #[test]
31 pub fn test_echo_resp_parse() {
32 let data = [0x4, 0x0, 0x0, 0x0];
33 let echo_resp = EchoResponse::read_le(&mut std::io::Cursor::new(&data)).unwrap();
34 assert_eq!(echo_resp, EchoResponse::default());
35 }
36}