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:
parent
5fdb20aa2f
commit
052ff398cd
15 changed files with 134 additions and 25 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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>,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
pub use crate::demo::{
|
||||
parser::{DemoParser, Parse, ParseError, ParserState, Result},
|
||||
parser::{
|
||||
DemoParser, Parse, ParseError, ParserState, Result, MatchState
|
||||
},
|
||||
Demo, Stream,
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue