pub struct Assets<T: AssetSource> { /* private fields */ }Expand description
Holds every loaded asset of type T — both its CPU-side source and (once
uploaded) its GPU-side processed form, together. Registering
AssetPlugin::<Backend, T>::new() drains newly-inserted/dirty entries
automatically each tick; insert/get/get_source are the everyday API.
Implementations§
Source§impl<T: AssetSource> Assets<T>
impl<T: AssetSource> Assets<T>
pub fn new() -> Self
Sourcepub fn insert(&mut self, name: &str, source: T) -> Handle<T>
pub fn insert(&mut self, name: &str, source: T) -> Handle<T>
Inserts source under name, queuing it for upload. Inserting
under a name that already exists replaces that entry (and marks it
dirty again) instead of creating a second one.
Sourcepub fn get(&self, handle: Handle<T>) -> Option<&T::Processed>
pub fn get(&self, handle: Handle<T>) -> Option<&T::Processed>
The GPU-side processed value, if it’s finished uploading.
Sourcepub fn get_source(&self, handle: Handle<T>) -> Option<&T>
pub fn get_source(&self, handle: Handle<T>) -> Option<&T>
The CPU-side source value — e.g. a Mesh’s vertices/indices, for
building a collision mesh from the same data used to render it.
pub fn get_source_mut(&mut self, handle: Handle<T>) -> Option<&mut T>
Sourcepub fn is_ready(&self, handle: Handle<T>) -> bool
pub fn is_ready(&self, handle: Handle<T>) -> bool
Whether this handle’s GPU-side upload has finished.
Sourcepub fn mark_dirty(&mut self, handle: Handle<T>)
pub fn mark_dirty(&mut self, handle: Handle<T>)
Re-queues an entry for upload — e.g. after mutating it via
get_source_mut.
Sourcepub fn get_by_name(&self, name: &str) -> Option<&T::Processed>
pub fn get_by_name(&self, name: &str) -> Option<&T::Processed>
Sourcepub fn get_source_by_name(&self, name: &str) -> Option<&T>
pub fn get_source_by_name(&self, name: &str) -> Option<&T>
Same as get_source, looked up by name.
Sourcepub fn get_handle_by_name(&self, name: &str) -> Option<Handle<T>>
pub fn get_handle_by_name(&self, name: &str) -> Option<Handle<T>>
The Handle<T> an asset was inserted under, by name.
Sourcepub fn iter(&self) -> impl Iterator<Item = (Handle<T>, &T)>
pub fn iter(&self) -> impl Iterator<Item = (Handle<T>, &T)>
Every currently-loaded asset of this type, source data included —
e.g. to build a static collision world from every loaded Mesh, or
a debug asset browser. Ready-or-not — pair with
is_ready if you only want finished uploads.
pub fn remove(&mut self, handle: Handle<T>) -> Option<T>
pub fn remove_by_name(&mut self, name: &str) -> Option<T>
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for Assets<T>
impl<T> RefUnwindSafe for Assets<T>
impl<T> Send for Assets<T>
impl<T> Sync for Assets<T>
impl<T> Unpin for Assets<T>
impl<T> UnsafeUnpin for Assets<T>
impl<T> UnwindSafe for Assets<T>
Blanket Implementations§
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
impl<T> Component for 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<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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> ⓘ
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> ⓘ
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().