pub struct Assets<A>where
A: Asset,{ /* private fields */ }Expand description
Stores Asset values identified by their AssetId.
Assets identified by AssetId::Index will be stored in a “dense” vec-like storage. This is more efficient, but it means that
the assets can only be identified at runtime. This is the default behavior.
Assets identified by AssetId::Uuid will be stored in a hashmap. This is less efficient, but it means that the assets can be referenced
at compile time.
This tracks (and queues) AssetEvent events whenever changes to the collection occur.
Implementations§
Source§impl<A> Assets<A>where
A: Asset,
impl<A> Assets<A>where
A: Asset,
Sourcepub fn get_handle_provider(&self) -> AssetHandleProvider
pub fn get_handle_provider(&self) -> AssetHandleProvider
Retrieves an AssetHandleProvider capable of reserving new Handle values for assets that will be stored in this
collection.
Sourcepub fn insert(&mut self, id: impl Into<AssetId<A>>, asset: A)
pub fn insert(&mut self, id: impl Into<AssetId<A>>, asset: A)
Inserts the given asset, identified by the given id. If an asset already exists for id, it will be replaced.
Sourcepub fn get_or_insert_with(
&mut self,
id: impl Into<AssetId<A>>,
insert_fn: impl FnOnce() -> A,
) -> &mut A
pub fn get_or_insert_with( &mut self, id: impl Into<AssetId<A>>, insert_fn: impl FnOnce() -> A, ) -> &mut A
Retrieves an Asset stored for the given id if it exists. If it does not exist, it will be inserted using insert_fn.
Sourcepub fn contains(&self, id: impl Into<AssetId<A>>) -> bool
pub fn contains(&self, id: impl Into<AssetId<A>>) -> bool
Returns true if the id exists in this collection. Otherwise it returns false.
Sourcepub fn add(&mut self, asset: A) -> Handle<A>
pub fn add(&mut self, asset: A) -> Handle<A>
Adds the given asset and allocates a new strong Handle for it.
Sourcepub fn remove_untracked(&mut self, id: impl Into<AssetId<A>>) -> Option<A>
pub fn remove_untracked(&mut self, id: impl Into<AssetId<A>>) -> Option<A>
Removes (and returns) the Asset with the given id, if its exists. This skips emitting AssetEvent::Removed.
Note that this supports anything that implements Into<AssetId<A>>, which includes Handle and AssetId.
Sourcepub fn iter_mut(&mut self) -> AssetsMutIterator<'_, A>
pub fn iter_mut(&mut self) -> AssetsMutIterator<'_, A>
Sourcepub fn track_assets(
assets: ResMut<'_, Assets<A>>,
asset_server: Res<'_, AssetServer>,
)
pub fn track_assets( assets: ResMut<'_, Assets<A>>, asset_server: Res<'_, AssetServer>, )
A system that synchronizes the state of assets in this collection with the AssetServer. This manages
Handle drop events and adds queued AssetEvent values to their Events resource.
Sourcepub fn asset_events(
assets: ResMut<'_, Assets<A>>,
events: EventWriter<'_, AssetEvent<A>>,
)
pub fn asset_events( assets: ResMut<'_, Assets<A>>, events: EventWriter<'_, AssetEvent<A>>, )
A system that applies accumulated asset change events to the Events resource.
Trait Implementations§
Auto Trait Implementations§
impl<A> Freeze for Assets<A>
impl<A> RefUnwindSafe for Assets<A>where
A: RefUnwindSafe,
impl<A> Send for Assets<A>
impl<A> Sync for Assets<A>
impl<A> Unpin for Assets<A>where
A: Unpin,
impl<A> UnsafeUnpin for Assets<A>
impl<A> UnwindSafe for Assets<A>where
A: UnwindSafe,
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
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
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>
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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self using data from the given World.