use super::prelude::*;
use crate::target::ext::tracepoints::Tracepoint;
#[derive(Debug)]
pub struct qTP<'a> {
pub tracepoint: Tracepoint,
pub addr: &'a [u8],
}
impl<'a> ParseCommand<'a> for qTP<'a> {
#[inline(always)]
fn from_packet(buf: PacketBuf<'a>) -> Option<Self> {
let body = buf.into_body();
match body {
[b':', body @ ..] => {
let mut s = body.split_mut(|b| *b == b':');
let tracepoint = Tracepoint(decode_hex(s.next()?).ok()?);
let addr = decode_hex_buf(s.next()?).ok()?;
Some(qTP { tracepoint, addr })
}
_ => None,
}
}
}