blob: 26a27a1efd7d758710e59008cab720ec5e6eab78 [file] [log] [blame]
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<Self> {
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,
}
}
}