1 use super::prelude::*; 2 3 #[derive(Debug)] 4 pub struct p<'a> { 5 pub reg_id: usize, 6 7 pub buf: &'a mut [u8], 8 } 9 10 impl<'a> ParseCommand<'a> for p<'a> { 11 #[inline(always)] from_packet(buf: PacketBuf<'a>) -> Option<Self>12 fn from_packet(buf: PacketBuf<'a>) -> Option<Self> { 13 let (buf, body_range) = buf.into_raw_buf(); 14 let body = buf.get(body_range.start..body_range.end)?; 15 16 if body.is_empty() { 17 return None; 18 } 19 20 let reg_id = decode_hex(body).ok()?; 21 22 Some(p { reg_id, buf }) 23 } 24 } 25