tf_demo_parser/demo/packet/
stop.rs

1use crate::demo::data::DemoTick;
2use bitbuffer::{BitRead, BitReadStream, BitWrite, BitWriteStream, Endianness};
3use serde::{Deserialize, Serialize};
4
5#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7pub struct StopPacket {
8    pub tick: DemoTick,
9}
10
11impl<'a, E: Endianness> BitRead<'a, E> for StopPacket {
12    fn read(stream: &mut BitReadStream<'a, E>) -> bitbuffer::Result<Self> {
13        Ok(StopPacket {
14            tick: stream.read_int::<u32>(24)?.into(),
15        })
16    }
17}
18
19impl<E: Endianness> BitWrite<E> for StopPacket {
20    fn write(&self, stream: &mut BitWriteStream<E>) -> bitbuffer::Result<()> {
21        stream.write_int::<u32>(self.tick.into(), 24)
22    }
23}