use super::prelude::*; use crate::protocol::common::lists::ArgListHex; #[derive(Debug)] pub enum QCatchSyscalls<'a> { Disable, Enable(ArgListHex<'a>), EnableAll, } impl<'a> ParseCommand<'a> for QCatchSyscalls<'a> { #[inline(always)] fn from_packet(buf: PacketBuf<'a>) -> Option { let body = buf.into_body(); match body { [b':', b'0'] => Some(QCatchSyscalls::Disable), [b':', b'1', b';', sysno @ ..] => { Some(QCatchSyscalls::Enable(ArgListHex::from_packet(sysno)?)) } [b':', b'1'] => Some(QCatchSyscalls::EnableAll), _ => None, } } }