pub struct Classes { /* private fields */ }Expand description
Container for all entity classes in a replay.
Classes define the types of entities that exist in the game. Each entity belongs to a class which specifies:
- What properties it has
- How those properties are encoded
- The class name (e.g., “CDOTA_Unit_Hero_Axe”)
§Examples
§Iterating all classes
use source2_demo::prelude::*;
for class in ctx.classes().iter() {
println!("Class ID {}: {}", class.id(), class.name());
}§Finding a specific class
use source2_demo::prelude::*;
// Get by class name
let hero_class = ctx.classes().get_by_name("CDOTA_Unit_Hero_Axe")?;
println!("Found class: {}", hero_class.name());
// Get by ID
let class = ctx.classes().get_by_id(42)?;Implementations§
Source§impl Classes
impl Classes
Sourcepub fn iter(&self) -> impl Iterator<Item = &Class>
pub fn iter(&self) -> impl Iterator<Item = &Class>
Returns an iterator over all classes.
This allows you to discover all entity types in the replay.
Sourcepub fn get_by_id(&self, id: usize) -> Result<&Class, ClassError>
pub fn get_by_id(&self, id: usize) -> Result<&Class, ClassError>
Gets a class by its numeric ID.
§Arguments
id- The numeric class ID
§Errors
Returns ClassError::ClassNotFoundById if no class with the given ID exists.
§Examples
use source2_demo::prelude::*;
let class = ctx.classes().get_by_id(42)?;
println!("Class name: {}", class.name());Sourcepub fn get_by_name(&self, name: &str) -> Result<&Class, ClassError>
pub fn get_by_name(&self, name: &str) -> Result<&Class, ClassError>
Gets a class by its name.
This is the most common way to find entity classes since you typically know the class name you’re looking for (e.g., “CDOTA_Unit_Hero_Axe”).
§Arguments
name- The class name (case-sensitive, e.g., “CDOTA_PlayerResource”)
§Errors
Returns ClassError::ClassNotFoundByName if no class with the given
name exists.
§Examples
use source2_demo::prelude::*;
// Find hero class
let hero_class = ctx.classes().get_by_name("CDOTA_Unit_Hero_Axe")?;
// Find player resource class
let resource = ctx.classes().get_by_name("CDOTA_PlayerResource")?;Trait Implementations§
Auto Trait Implementations§
impl Freeze for Classes
impl !RefUnwindSafe for Classes
impl !Send for Classes
impl !Sync for Classes
impl Unpin for Classes
impl UnsafeUnpin for Classes
impl !UnwindSafe for Classes
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more