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 reserve_handle(&self) -> Handle<A>
pub fn reserve_handle(&self) -> Handle<A>
Reserves a new Handle
for an asset 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: impl Into<A>) -> Handle<A>
pub fn add(&mut self, asset: impl Into<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.
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> 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> 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
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
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
.