gdbstub 0.7.10

An implementation of the GDB Remote Serial Protocol in Rust
Documentation
use super::prelude::*;
use crate::protocol::common::thread_id::ThreadId;
use crate::protocol::ConcreteThreadId;

#[derive(Debug)]
pub struct qWasmCallStack {
    pub tid: ConcreteThreadId,
}

impl<'a> ParseCommand<'a> for qWasmCallStack {
    #[inline(always)]
    fn from_packet(buf: PacketBuf<'a>) -> Option<Self> {
        let body = buf.into_body();
        if body.is_empty() || body[0] != b':' {
            return None;
        }
        let tid = &body[1..];
        let tid = ConcreteThreadId::try_from(ThreadId::try_from(tid).ok()?).ok()?;
        Some(qWasmCallStack { tid })
    }
}