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