Struct bevy::asset::ReflectAsset

pub struct ReflectAsset { /* private fields */ }
Expand description

Type data for the TypeRegistry used to operate on reflected Assets.

This type provides similar methods to Assets<T> like get, add and remove, but can be used in situations where you don’t know which asset type T you want until runtime.

ReflectAsset can be obtained via TypeRegistration::data if the asset was registered using register_asset_reflect.

Implementations§

The [bevy_reflect::TypeUuid] of the asset

The TypeId of the Handle<T> for this asset

The TypeId of the Assets<T> resource

Equivalent of Assets::get

Equivalent of Assets::get_mut

Equivalent of Assets::get_mut, but does not require a mutable reference to the world.

Only use this method when you have ensured that you are the only one with access to the Assets resource of the asset type. Furthermore, this does not allow you to have look up two distinct handles, you can only have at most one alive at the same time. This means that this is not allowed:

let a = unsafe { reflect_asset.get_unchecked_mut(&world, handle_1).unwrap() };
let b = unsafe { reflect_asset.get_unchecked_mut(&world, handle_2).unwrap() };
// ^ not allowed, two mutable references through the same asset resource, even though the
// handles are distinct

println!("a = {a:?}, b = {b:?}");
Safety

This method does not prevent you from having two mutable pointers to the same data, violating Rust’s aliasing rules. To avoid this:

  • Only call this method when you have exclusive access to the world (or use a scheduler that enforces unique access to the Assets resource).
  • Don’t call this method more than once in the same scope.

Equivalent of Assets::add

Equivalent of Assets::set

Equivalent of Assets::remove

Equivalent of Assets::len

Equivalent of Assets::is_empty

Equivalent of Assets::ids

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more
Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more
Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more
Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

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

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more