Struct bevy::asset::ErasedLoadedAsset
source · pub struct ErasedLoadedAsset { /* private fields */ }
Expand description
A “type erased / boxed” counterpart to LoadedAsset
. This is used in places where the loaded type is not statically known.
Implementations§
source§impl ErasedLoadedAsset
impl ErasedLoadedAsset
sourcepub fn take<A>(self) -> Option<A>where
A: Asset,
pub fn take<A>(self) -> Option<A>where
A: Asset,
Cast (and take ownership) of the Asset
value of the given type. This will return Some
if
the stored type matches A
and None
if it does not.
Examples found in repository?
examples/asset/asset_decompression.rs (line 131)
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
fn decompress<A: Asset>(
mut commands: Commands,
asset_server: Res<AssetServer>,
mut compressed_assets: ResMut<Assets<GzAsset>>,
query: Query<(Entity, &Compressed<A>)>,
) {
for (entity, Compressed { compressed, .. }) in query.iter() {
let Some(GzAsset { uncompressed }) = compressed_assets.remove(compressed) else {
continue;
};
let uncompressed = uncompressed.take::<A>().unwrap();
commands
.entity(entity)
.remove::<Compressed<A>>()
.insert(asset_server.add(uncompressed));
}
}
sourcepub fn asset_type_id(&self) -> TypeId
pub fn asset_type_id(&self) -> TypeId
sourcepub fn asset_type_name(&self) -> &'static str
pub fn asset_type_name(&self) -> &'static str
Retrieves the type_name
of the stored Asset
type.
sourcepub fn get_labeled(
&self,
label: impl Into<CowArc<'static, str>>
) -> Option<&ErasedLoadedAsset>
pub fn get_labeled( &self, label: impl Into<CowArc<'static, str>> ) -> Option<&ErasedLoadedAsset>
Returns the ErasedLoadedAsset
for the given label, if it exists.
sourcepub fn iter_labels(&self) -> impl Iterator<Item = &str>
pub fn iter_labels(&self) -> impl Iterator<Item = &str>
Iterate over all labels for “labeled assets” in the loaded asset
Trait Implementations§
source§impl<A> From<LoadedAsset<A>> for ErasedLoadedAssetwhere
A: Asset,
impl<A> From<LoadedAsset<A>> for ErasedLoadedAssetwhere
A: Asset,
source§fn from(asset: LoadedAsset<A>) -> ErasedLoadedAsset
fn from(asset: LoadedAsset<A>) -> ErasedLoadedAsset
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for ErasedLoadedAsset
impl !RefUnwindSafe for ErasedLoadedAsset
impl Send for ErasedLoadedAsset
impl Sync for ErasedLoadedAsset
impl Unpin for ErasedLoadedAsset
impl !UnwindSafe for ErasedLoadedAsset
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
Return the
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.