blob: d89fbcd0a1ec5bb5f485dc166ae9b7a82416a59f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
use super::prelude::*;
use crate::protocol::common::thread_id::ThreadId;
use crate::protocol::ConcreteThreadId;
#[derive(Debug)]
pub struct qThreadExtraInfo<'a> {
pub id: ConcreteThreadId,
pub buf: &'a mut [u8],
}
impl<'a> ParseCommand<'a> for qThreadExtraInfo<'a> {
#[inline(always)]
fn from_packet(buf: PacketBuf<'a>) -> Option<Self> {
let (buf, body_range) = buf.into_raw_buf();
let body = buf.get(body_range.start..body_range.end)?;
if body.is_empty() {
return None;
}
match body {
[b',', body @ ..] => {
let id = ConcreteThreadId::try_from(ThreadId::try_from(body).ok()?).ok()?;
Some(qThreadExtraInfo { id, buf })
}
_ => None,
}
}
}
|