Skip to main content

wayk_proto/message/common/
edge_rect.rs

1// NOW_EDGE_RECT
2
3use core::mem;
4
5#[derive(Encode, Decode, Debug, Clone, Default)]
6pub struct EdgeRect {
7    pub left: i16,
8    pub top: i16,
9    pub right: i16,
10    pub bottom: i16,
11}
12
13impl EdgeRect {
14    pub const REQUIRED_SIZE: usize = mem::size_of::<Self>();
15}
16
17#[cfg(test)]
18mod tests {
19    use super::*;
20    use crate::serialization::{Decode, Encode};
21
22    #[rustfmt::skip]
23    const NOW_EDGE_RECT: [u8; 8] = [
24        0x00, 0x00, // left
25        0x00, 0x00, // top
26        0x00, 0x04, // right
27        0x00, 0x03, // bottom
28    ];
29
30    #[test]
31    fn decoding() {
32        let rect = EdgeRect::decode(&NOW_EDGE_RECT).unwrap();
33        assert_eq!(rect.left, 0);
34        assert_eq!(rect.top, 0);
35        assert_eq!(rect.right, 1024);
36        assert_eq!(rect.bottom, 768);
37    }
38
39    #[test]
40    fn encoding() {
41        let rect = EdgeRect {
42            left: 0,
43            top: 0,
44            right: 1024,
45            bottom: 768,
46        };
47        assert_eq!(rect.encode().unwrap(), NOW_EDGE_RECT.to_vec());
48    }
49}