1#![doc = include_str!("../README.md")]
2
3mod display;
4mod entity;
5pub mod error;
6mod event;
7mod macros;
8mod parser;
9mod reader;
10mod string_table;
11
12pub mod proto {
13 pub use source2_demo_protobufs::prost::Message;
14 pub use source2_demo_protobufs::*;
15}
16
17pub mod prelude {
18 pub use crate::entity::{Entity, EntityEvents};
19 pub use crate::event::{EventValue, GameEvent, GameEventList};
20 pub use crate::parser::*;
21 pub use crate::string_table::*;
22 pub use crate::{property, try_property};
23
24 pub use source2_demo_macros::*;
25
26 pub use source2_demo_protobufs::prost::Message;
27 pub use source2_demo_protobufs::EBaseGameEvents;
28 pub use source2_demo_protobufs::EBaseUserMessages;
29 pub use source2_demo_protobufs::EDemoCommands;
30 pub use source2_demo_protobufs::NetMessages;
31 pub use source2_demo_protobufs::SvcMessages;
32
33 #[cfg(feature = "dota")]
34 pub use crate::event::CombatLogEntry;
35 #[cfg(feature = "dota")]
36 pub use crate::proto::EDotaUserMessages;
37
38 #[cfg(feature = "deadlock")]
39 pub use crate::proto::CitadelUserMessageIds;
40 #[cfg(feature = "deadlock")]
41 pub use crate::proto::ECitadelGameEvents;
42
43 #[cfg(feature = "cs2")]
44 pub use crate::proto::ECstrike15UserMessages;
45 #[cfg(feature = "cs2")]
46 pub use crate::proto::ECsgoGameEvents;
47}
48
49pub use crate::entity::field::FieldValue;
50pub use crate::entity::*;
51pub use crate::event::*;
52pub use crate::parser::*;
53pub use crate::string_table::*;
54pub use source2_demo_macros::*;
55
56pub type HashMap<K, V> =
57hashbrown::HashMap<K, V, rustc_hash::FxBuildHasher>;
58pub type HashSet<T> =
59hashbrown::HashSet<T, rustc_hash::FxBuildHasher>;
60
61
62#[cfg(feature = "dota")]
63pub use crate::event::CombatLogEntry;
64
65#[cfg(feature = "mimalloc")]
66use mimalloc::MiMalloc;
67#[cfg(feature = "mimalloc")]
68#[global_allocator]
69static GLOBAL: MiMalloc = MiMalloc;