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,

source

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.

source

pub fn reserve_handle(&self) -> Handle<A>

Reserves a new Handle for an asset that will be stored in this collection.

source

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.

source

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.

source

pub fn contains(&self, id: impl Into<AssetId<A>>) -> bool

Returns true if the id exists in this collection. Otherwise it returns false.

source

pub fn add(&mut self, asset: impl Into<A>) -> Handle<A>

Adds the given asset and allocates a new strong Handle for it.

source

pub fn get(&self, id: impl Into<AssetId<A>>) -> Option<&A>

Retrieves a reference to the Asset with the given id, if its exists. Note that this supports anything that implements Into<AssetId<A>>, which includes Handle and AssetId.

source

pub fn get_mut(&mut self, id: impl Into<AssetId<A>>) -> Option<&mut A>

Retrieves a mutable reference to the Asset with the given id, if its exists. Note that this supports anything that implements Into<AssetId<A>>, which includes Handle and AssetId.

source

pub fn remove(&mut self, id: impl Into<AssetId<A>>) -> Option<A>

Removes (and returns) the Asset with the given id, if its exists. Note that this supports anything that implements Into<AssetId<A>>, which includes Handle and AssetId.

source

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.

source

pub fn is_empty(&self) -> bool

Returns true if there are no assets in this collection.

source

pub fn len(&self) -> usize

Returns the number of assets currently stored in the collection.

source

pub fn ids(&self) -> impl Iterator<Item = AssetId<A>>

Returns an iterator over the AssetId of every Asset stored in this collection.

source

pub fn iter(&self) -> impl Iterator<Item = (AssetId<A>, &A)>

Returns an iterator over the AssetId and Asset ref of every asset in this collection.

source

pub fn iter_mut(&mut self) -> AssetsMutIterator<'_, A>

Returns an iterator over the AssetId and mutable Asset ref of every asset in this collection.

source

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.

source

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§

source§

impl<A> Default for Assets<A>
where A: Asset,

source§

fn default() -> Assets<A>

Returns the “default value” for a type. Read more
source§

impl<A> Resource for Assets<A>
where A: Asset, Assets<A>: Send + Sync + 'static,

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

source§

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> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> Downcast for T
where T: Any,

source§

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>

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)

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)

Convert &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
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<S> FromSample<S> for S

source§

fn from_sample_(s: S) -> S

source§

impl<T> FromWorld for T
where T: Default,

source§

fn from_world(_world: &mut World) -> T

Creates Self using data from the given World.
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

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

fn in_current_span(self) -> Instrumented<Self>

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

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

source§

fn to_sample_(self) -> U

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

source§

impl<T> Settings for T
where T: 'static + Send + Sync,

source§

impl<T> WasmNotSend for T
where T: Send,

source§

impl<T> WasmNotSendSync for T

source§

impl<T> WasmNotSync for T
where T: Sync,