pub trait Asset: Downcast + Send + Sync + Debug + 'static {
    fn next_counter() -> u64
    where
        Self: Sized
; }
Expand description

An Asset rappresent any kind of external data like images, sound, text file etc..

To load and asset into you game you have to load from the filesystem with AssetManager::load

You should avoid to implement the Asset trait manually and use instead the asset derive macro

Required Methods

Returns an unique asset id.

Normally it’s used the asset path as unique id but in case this is not possible (eg: get multiple id for the same asset path) the engine will call this function.

The asset derive macro implement this function in the following way

static ASSETTEST_COUNTER: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0);
impl Asset for AssetTest {
   fn next_counter() -> u64
   where
       Self: Sized,
   {
       ASSETTEST_COUNTER.fetch_add(1, std::sync::atomic::Ordering::Relaxed)
   }
}

Implementations

Returns true if the trait object wraps an object of type __T.

Returns a boxed object from a boxed trait object if the underlying object is of type __T. Returns the original boxed trait if it isn’t.

Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of type __T. Returns the original Rc-ed trait if it isn’t.

Returns a reference to the object within the trait object if it is of type __T, or None if it isn’t.

Returns a mutable reference to the object within the trait object if it is of type __T, or None if it isn’t.

Implementors