mirror of
https://codeberg.org/demostf/parser.git
synced 2026-06-03 10:14:06 +02:00
expose stop packet
This commit is contained in:
parent
d3cbe134bc
commit
c1d023f85c
2 changed files with 9 additions and 5 deletions
|
|
@ -43,7 +43,7 @@ impl MessageHandler for NullHandler {
|
|||
#[derive(Clone)]
|
||||
pub struct DemoHandler<'a, T: MessageHandler> {
|
||||
pub tick: u32,
|
||||
string_table_names: Vec<Cow<'a, str>>,
|
||||
pub string_table_names: Vec<Cow<'a, str>>,
|
||||
analyser: T,
|
||||
pub state_handler: ParserState,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -108,8 +108,8 @@ impl<'a, A: MessageHandler> DemoParser<'a, A> {
|
|||
#[derive(Clone)]
|
||||
pub struct RawPacketStream<'a> {
|
||||
stream: Stream<'a>,
|
||||
ended: bool,
|
||||
incomplete: bool,
|
||||
pub ended: bool,
|
||||
pub incomplete: bool,
|
||||
}
|
||||
|
||||
impl<'a> RawPacketStream<'a> {
|
||||
|
|
@ -121,14 +121,18 @@ impl<'a> RawPacketStream<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn pos(&self) -> usize {
|
||||
self.stream.pos()
|
||||
}
|
||||
|
||||
pub fn next(&mut self, state: &ParserState) -> Result<Option<Packet<'a>>> {
|
||||
if self.ended {
|
||||
Ok(None)
|
||||
} else {
|
||||
match Packet::parse(&mut self.stream, state) {
|
||||
Ok(Packet::Stop(_)) => {
|
||||
Ok(packet @ Packet::Stop(_)) => {
|
||||
self.ended = true;
|
||||
Ok(None)
|
||||
Ok(Some(packet))
|
||||
}
|
||||
Ok(packet) => Ok(Some(packet)),
|
||||
Err(ParseError::ReadError(BitError::NotEnoughData { .. })) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue