Struct bevy::asset::ErasedLoadedAsset
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§
§impl ErasedLoadedAsset
impl ErasedLoadedAsset
pub 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 127)
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
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));
}
}
pub fn get<A>(&self) -> Option<&A>where
A: Asset,
pub fn get<A>(&self) -> Option<&A>where
A: Asset,
Examples found in repository?
examples/asset/processing/asset_processing.rs (line 149)
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
async fn load<'a>(
&'a self,
reader: &'a mut Reader<'_>,
_settings: &'a Self::Settings,
load_context: &'a mut LoadContext<'_>,
) -> Result<CoolText, Self::Error> {
let mut bytes = Vec::new();
reader.read_to_end(&mut bytes).await?;
let ron: CoolTextRon = ron::de::from_bytes(&bytes)?;
let mut base_text = ron.text;
for embedded in ron.embedded_dependencies {
let loaded = load_context.load_direct(&embedded).await?;
let text = loaded.get::<Text>().unwrap();
base_text.push_str(&text.0);
}
Ok(CoolText {
text: base_text,
dependencies: ron
.dependencies
.iter()
.map(|p| load_context.load(p))
.collect(),
})
}
pub fn asset_type_id(&self) -> TypeId
pub fn asset_type_id(&self) -> TypeId
pub fn asset_type_name(&self) -> &'static str
pub fn asset_type_name(&self) -> &'static str
Retrieves the type_name
of the stored Asset
type.
pub 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.
pub 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§
§impl<A> From<LoadedAsset<A>> for ErasedLoadedAssetwhere
A: Asset,
impl<A> From<LoadedAsset<A>> for ErasedLoadedAssetwhere
A: Asset,
§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§
§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> 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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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
.§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
.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more