mqtt_bytes_v5/
ping.rs

1use super::{Debug, Error};
2use bytes::{BufMut, BytesMut};
3
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub struct PingReq;
6
7impl PingReq {
8    pub fn write(payload: &mut BytesMut) -> Result<usize, Error> {
9        payload.put_slice(&[0xC0, 0x00]);
10        Ok(2)
11    }
12}
13
14#[derive(Debug, Clone, PartialEq, Eq)]
15pub struct PingResp;
16
17impl PingResp {
18    pub fn write(payload: &mut BytesMut) -> Result<usize, Error> {
19        payload.put_slice(&[0xD0, 0x00]);
20        Ok(2)
21    }
22}
23
24#[cfg(test)]
25mod test {
26    use super::*;
27    use crate::{test::read_write_packets, Packet};
28
29    #[test]
30    fn test_write_read() {
31        read_write_packets(write_read_provider());
32    }
33
34    fn write_read_provider() -> Vec<Packet> {
35        vec![Packet::PingReq(PingReq {}), Packet::PingResp(PingResp {})]
36    }
37}