smb_msg/
echo.rs

1//! Echo request and response messages
2use 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}