Skip to main content

SingletonManager

Struct SingletonManager 

Source
pub struct SingletonManager;
Expand description

Access point for the game’s registered singletons.

Allows looking up singletons by class name or DTI id, and retrieving them as MtObject references or as concrete subclasses. Also supports fetching all registered singletons at once as a boxed slice of MtObject references.

Implementations§

Source§

impl SingletonManager

Source

pub fn get_by_name(name: &str) -> Option<&'static mut MtObject>

Looks up a singleton by class name, returning it as an MtObject.

Returns None if no singleton with that name is registered. See get_by_name_typed to receive a concrete subclass instead.

Source

pub fn get_by_id(id: u32) -> Option<&'static mut MtObject>

Looks up a singleton by its DTI id, returning it as an MtObject.

Returns None if no singleton with that id is registered. See get_by_id_typed to receive a concrete subclass instead.

Source

pub fn get_by_name_typed<T: Object>(name: &str) -> Option<&'static mut T>

Looks up a singleton by class name and returns it as the subclass T.

The downcast to T is unchecked; the caller must ensure the singleton is actually a T. Returns None if name contains an interior NUL byte or if no singleton with that name is registered.

Source

pub fn get_by_id_typed<T: Object>(id: u32) -> Option<&'static mut T>

Looks up a singleton by its DTI id and returns it as the subclass T.

The downcast to T is unchecked; the caller must ensure the singleton is actually a T. Returns None if no singleton with that id is registered.

Source

pub fn get_all() -> Box<[&'static mut MtObject]>

Returns every registered singleton as a boxed slice of MtObject references.

The count is queried first, then the instances are fetched into a buffer of that size. If the game reports a different count on the second call (e.g. singletons were registered or removed in between) the mismatch is logged and the actual number returned is used.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.