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

add basic snapshot testing

This commit is contained in:
Robin Appelman 2019-03-17 19:20:50 +01:00
commit 052ff398cd
15 changed files with 134 additions and 25 deletions

View file

@ -1,12 +1,12 @@
use bitstream_reader::BitRead;
use serde::Serialize;
use serde::{Serialize, Deserialize};
use crate::{Parse, ParserState, Result, Stream, ParseError};
use crate::demo::packet::datatable::ServerClass;
use crate::demo::sendprop::SendProp;
use crate::demo::parser::ParseBitSkip;
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct EntityId(u32);
impl EntityId {

View file

@ -1,7 +1,7 @@
use bitstream_reader::{BitRead, BitSkip, LittleEndian};
use bitstream_reader::{BitRead, LittleEndian};
use enum_primitive_derive::Primitive;
use num_traits::FromPrimitive;
use serde::Serialize;
use serde::{Serialize, Deserialize};
use crate::{ReadResult, Stream, Result, ParseError};
use crate::demo::parser::ParseBitSkip;
@ -108,7 +108,7 @@ impl ParseBitSkip for UserMessage {
}
#[derive(Debug, Clone, Serialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub enum ChatMessageKind {
#[serde(rename = "TF_Chat_All")]
ChatAll,

View file

@ -1,7 +1,7 @@
use std::collections::HashMap;
use serde::Serialize;
use serde_repr::Serialize_repr;
use serde::{Serialize, Deserialize};
use serde_repr::{Serialize_repr, Deserialize_repr};
use crate::demo::gameevent_gen::{
GameEvent, PlayerDeathEvent, PlayerSpawnEvent, TeamPlayRoundWinEvent,
@ -14,7 +14,7 @@ use crate::demo::parser::handler::{MessageHandler, StringTableEntryHandler};
use crate::demo::vector::Vector;
use crate::{ParserState, ReadResult, Stream};
#[derive(Debug, Clone, Serialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ChatMassage {
pub kind: ChatMessageKind,
pub from: String,
@ -33,7 +33,7 @@ impl ChatMassage {
}
}
#[derive(Debug, Clone, Serialize, Copy, PartialEq, Eq, Hash)]
#[derive(Debug, Clone, Serialize, Deserialize, Copy, PartialEq, Eq, Hash)]
pub enum Team {
Other = 0,
Spectator = 1,
@ -54,7 +54,7 @@ impl Team {
}
}
#[derive(Debug, Clone, Serialize_repr, Copy, PartialEq, Eq, Hash)]
#[derive(Debug, Clone, Serialize_repr, Deserialize_repr, Copy, PartialEq, Eq, Hash)]
#[repr(u8)]
pub enum Class {
Other = 0,
@ -86,10 +86,10 @@ impl Class {
}
}
#[derive(Debug, Clone, Serialize, Copy, PartialEq, Eq, Hash)]
#[derive(Debug, Clone, Serialize, Deserialize, Copy, PartialEq, Eq, Hash)]
pub struct UserId(u8);
#[derive(Debug, Clone, Serialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct Spawn {
pub user: UserId,
pub class: Class,
@ -108,7 +108,7 @@ impl Spawn {
}
}
#[derive(Debug, Clone, Serialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct UserInfo {
pub name: String,
pub user_id: UserId,
@ -116,7 +116,7 @@ pub struct UserInfo {
pub entity_id: EntityId,
}
#[derive(Debug, Clone, Serialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct Death {
pub weapon: String,
pub victim: UserId,
@ -142,7 +142,7 @@ impl Death {
}
}
#[derive(Debug, Clone, Serialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct Round {
winner: Team,
length: f32,
@ -159,13 +159,13 @@ impl Round {
}
}
#[derive(Default, Debug, Serialize)]
#[derive(Default, Debug, Serialize, Deserialize, PartialEq)]
pub struct World {
boundary_min: Vector,
boundary_max: Vector,
}
#[derive(Default, Debug, Serialize)]
#[derive(Default, Debug, Serialize, Deserialize, PartialEq)]
pub struct Analyser {
pub chat: Vec<ChatMassage>,
pub users: HashMap<UserId, UserInfo>,
@ -287,7 +287,7 @@ impl Analyser {
}
}
#[derive(Debug, Serialize)]
#[derive(Debug, Serialize, Deserialize, PartialEq)]
pub struct UserState {
pub classes: HashMap<Class, u8>,
pub name: String,
@ -330,7 +330,7 @@ impl UserState {
}
}
#[derive(Debug, Serialize)]
#[derive(Debug, Serialize, Deserialize, PartialEq)]
pub struct MatchState {
pub chat: Vec<ChatMassage>,
pub users: HashMap<UserId, UserState>,

View file

@ -3,7 +3,7 @@ use bitstream_reader::{BitRead, BitSkip, LittleEndian, ReadError};
use crate::demo::gamevent::{GameEventValue, GameEventValueType};
use crate::demo::header::Header;
use crate::demo::packet::Packet;
use crate::demo::parser::analyser::MatchState;
pub use crate::demo::parser::analyser::MatchState;
use crate::demo::parser::handler::DemoHandler;
pub use crate::demo::parser::state::ParserState;
use crate::Stream;

View file

@ -1,14 +1,14 @@
use bitstream_reader::{BitRead, BitSize};
use serde::Serialize;
use serde::{Serialize, Deserialize};
#[derive(BitRead, BitSize, Debug, Clone, Copy, Default, Serialize)]
#[derive(BitRead, BitSize, Debug, Clone, Copy, Default, Serialize, Deserialize, PartialEq)]
pub struct Vector {
pub x: f32,
pub y: f32,
pub z: f32,
}
#[derive(BitRead, BitSize, Debug, Clone, Copy, Default, Serialize)]
#[derive(BitRead, BitSize, Debug, Clone, Copy, Default, Serialize, Deserialize, PartialEq)]
pub struct VectorXY {
pub x: f32,
pub y: f32,

View file

@ -1,5 +1,7 @@
pub use crate::demo::{
parser::{DemoParser, Parse, ParseError, ParserState, Result},
parser::{
DemoParser, Parse, ParseError, ParserState, Result, MatchState
},
Demo, Stream,
};