use super::prelude::*;

use crate::protocol::common::thread_id::ThreadId;

#[derive(Debug)]
pub enum Op {
    StepContinue,
    Other,
}

#[derive(Debug)]
pub struct H {
    pub kind: Op,
    pub thread: ThreadId,
}

impl<'a> ParseCommand<'a> for H {
    fn from_packet(buf: PacketBuf<'a>) -> Option<Self> {
        let body = buf.into_body();
        if body.is_empty() {
            return None;
        }

        let kind = match body[0] {
            b'g' => Op::Other,
            b'c' => Op::StepContinue,
            _ => return None,
        };
        let thread: ThreadId = body[1..].try_into().ok()?;

        Some(H { kind, thread })
    }
}
