Struct bevy::asset::Assets

pub struct Assets<T>where
    T: Asset,{ /* private fields */ }
Expand description

Stores Assets of a given type and tracks changes to them.

Each asset is mapped by a unique HandleId, allowing any Handle with the same HandleId to access it. These assets remain loaded for as long as a Strong handle to that asset exists.

To store a reference to an asset without forcing it to stay loaded, you can use a Weak handle. To make a Weak handle a Strong one, use Assets::get_handle or pass the Assets collection into the handle’s make_strong method.

Remember, if there are no Strong handles for an asset (i.e. they have all been dropped), the asset will unload. Make sure you always have a Strong handle when you want to keep an asset loaded!

Implementations§

§

impl<T> Assets<T>where T: Asset,

pub fn add(&mut self, asset: T) -> Handle<T>

Adds an asset to the collection, returning a Strong handle to that asset.

Events

pub fn set<H>(&mut self, handle: H, asset: T) -> Handle<T>where H: Into<HandleId>,

Add/modify the asset pointed to by the given handle.

Unless there exists another Strong handle for this asset, it’s advised to use the returned Strong handle. Not doing so may result in the unexpected release of the asset.

See set_untracked for more info.

pub fn set_untracked<H>(&mut self, handle: H, asset: T)where H: Into<HandleId>,

Add/modify the asset pointed to by the given handle.

If an asset already exists with the given HandleId, it will be modified. Otherwise the new asset will be inserted.

Events

pub fn get(&self, handle: &Handle<T>) -> Option<&T>

Gets the asset for the given handle.

This is the main method for accessing asset data from an Assets collection. If you need mutable access to the asset, use get_mut.

pub fn contains(&self, handle: &Handle<T>) -> bool

Checks if an asset exists for the given handle

pub fn get_mut(&mut self, handle: &Handle<T>) -> Option<&mut T>

Get mutable access to the asset for the given handle.

This is the main method for mutably accessing asset data from an Assets collection. If you do not need mutable access to the asset, you may also use get.

pub fn get_handle<H>(&self, handle: H) -> Handle<T>where H: Into<HandleId>,

Gets a Strong handle pointing to the same asset as the given one.

pub fn get_or_insert_with<H>( &mut self, handle: H, insert_fn: impl FnOnce() -> T ) -> &mut Twhere H: Into<HandleId>,

Gets mutable access to an asset for the given handle, inserting a new value if none exists.

Events

pub fn iter(&self) -> impl Iterator<Item = (HandleId, &T)>

Gets an iterator over all assets in the collection.

pub fn iter_mut(&mut self) -> impl Iterator<Item = (HandleId, &mut T)>

Gets a mutable iterator over all assets in the collection.

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

Gets an iterator over all HandleId’s in the collection.

pub fn remove<H>(&mut self, handle: H) -> Option<T>where H: Into<HandleId>,

Removes an asset for the given handle.

The asset is returned if it existed in the collection, otherwise None.

Events

pub fn clear(&mut self)

Clears the inner asset map, removing all key-value pairs.

Keeps the allocated memory for reuse.

pub fn reserve(&mut self, additional: usize)

Reserves capacity for at least additional more elements to be inserted into the assets.

The collection may reserve more space to avoid frequent reallocations.

pub fn shrink_to_fit(&mut self)

Shrinks the capacity of the asset map as much as possible.

It will drop down as much as possible while maintaining the internal rules and possibly leaving some space in accordance with the resize policy.

pub fn asset_event_system( events: EventWriter<'_, AssetEvent<T>>, assets: ResMut<'_, Assets<T>> )

A system that creates AssetEvents at the end of the frame based on changes in the asset storage.

pub fn len(&self) -> usize

Gets the number of assets in the collection.

pub fn is_empty(&self) -> bool

Returns true if there are no stored assets.

Trait Implementations§

§

impl<T> Debug for Assets<T>where T: Debug + Asset,

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

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

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for Assets<T>where T: RefUnwindSafe,

§

impl<T> Send for Assets<T>

§

impl<T> Sync for Assets<T>

§

impl<T> Unpin for Assets<T>where T: Unpin,

§

impl<T> UnwindSafe for Assets<T>where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T, U> AsBindGroupShaderType<U> for Twhere U: ShaderType, &'a T: for<'a> Into<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> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>

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>

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)

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)

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 Twhere T: Any + Send + Sync,

§

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.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

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 Twhere 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.

§

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

§

fn to_sample_(self) -> U

source§

impl<T, U> TryFrom<U> for Twhere 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 Twhere 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.
§

impl<T> Upcast<T> for T

§

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
§

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