source2_demo/
lib.rs

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;