Skip to main content

AnyAttribute

Struct AnyAttribute 

Source
pub struct AnyAttribute { /* private fields */ }
Expand description

A configuration or gameplay attribute after erasing its Rust marker type.

Catalogs need one homogeneous representation even though attributes decode to different Rust types. Erasure deliberately retains all metadata needed to audit the descriptor against the SDK header: the canonical name, tagged union discriminator, and whether lookup requires a zero-based index.

Normal callback code should keep using Attribute<T>, because that preserves typed decoding. AnyAttribute is intended for enumeration, diagnostics, schema generation, and coverage tests rather than replacing the typed API.

Implementations§

Source§

impl AnyAttribute

Source

pub const fn name(self) -> &'static CStr

Returns the canonical, NUL-terminated attribute name from the SDK header.

Source

pub const fn value_type(self) -> ValueType

Returns the SCS tagged-union member expected for this attribute.

Source

pub const fn is_indexed(self) -> bool

Returns whether lookup requires an explicit zero-based SDK index.

Indexed attributes include wheel properties, transmission ratios, and H-shifter slots. Scalar attributes must instead be looked up using the SDK sentinel index SCS_U32_NIL.

Source

pub const fn availability(self) -> GameSchemaAvailability

Official per-game schema history retained during type erasure.

Trait Implementations§

Source§

impl Clone for AnyAttribute

Source§

fn clone(&self) -> AnyAttribute

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for AnyAttribute

Source§

impl Debug for AnyAttribute

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for AnyAttribute

Source§

impl PartialEq for AnyAttribute

Source§

fn eq(&self, other: &AnyAttribute) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for AnyAttribute

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.