1
0
Fork 0
mirror of https://codeberg.org/demostf/parser.git synced 2026-06-03 18:24:05 +02:00

reencode and reparse tests

This commit is contained in:
Robin Appelman 2021-07-20 23:20:14 +02:00
commit d3c50f8b4a
2 changed files with 130 additions and 4 deletions

View file

@ -1,6 +1,5 @@
use bitbuffer::{
bit_size_of, BitRead, BitWrite, BitWriteSized, BitWriteStream, Endianness, LazyBitRead,
LittleEndian,
bit_size_of, BitRead, BitWrite, BitWriteStream, Endianness, LazyBitRead, LittleEndian,
};
use crate::demo::message::{Message, MessageType};
@ -20,7 +19,7 @@ pub struct MessagePacketMeta {
pub struct MessagePacket<'a> {
pub tick: u32,
pub messages: Vec<Message<'a>>,
pub meta: MessagePacketMeta,
pub meta: LazyBitRead<'a, MessagePacketMeta, LittleEndian>,
}
#[derive(Clone, Debug, PartialEq)]
@ -141,7 +140,7 @@ impl<'a> Parse<'a> for MessagePacket<'a> {
impl Encode for MessagePacket<'_> {
fn encode(&self, stream: &mut BitWriteStream<LittleEndian>, state: &ParserState) -> Result<()> {
self.tick.write(stream)?;
self.meta.write(stream)?;
self.meta.read()?.write(stream)?;
stream.reserve_byte_length(32, |stream| {
for message in self.messages.iter() {
message.get_message_type().write(stream)?;