pub trait ErasedAssetLoader: Send + Sync + 'static {
    // Required methods
    fn load<'a>(
        &'a self,
        reader: &'a mut (dyn AsyncRead + Send + Sync + Unpin + '_),
        meta: Box<dyn AssetMetaDyn>,
        load_context: LoadContext<'a>
    ) -> Pin<Box<dyn Future<Output = Result<ErasedLoadedAsset, Box<dyn Error + Send + Sync>>> + Send + 'a>>;
    fn extensions(&self) -> &[&str];
    fn deserialize_meta(
        &self,
        meta: &[u8]
    ) -> Result<Box<dyn AssetMetaDyn>, DeserializeMetaError>;
    fn default_meta(&self) -> Box<dyn AssetMetaDyn>;
    fn type_name(&self) -> &'static str;
    fn type_id(&self) -> TypeId;
    fn asset_type_name(&self) -> &'static str;
    fn asset_type_id(&self) -> TypeId;
}
Expand description

Provides type-erased access to an AssetLoader.

Required Methods§

source

fn load<'a>( &'a self, reader: &'a mut (dyn AsyncRead + Send + Sync + Unpin + '_), meta: Box<dyn AssetMetaDyn>, load_context: LoadContext<'a> ) -> Pin<Box<dyn Future<Output = Result<ErasedLoadedAsset, Box<dyn Error + Send + Sync>>> + Send + 'a>>

Asynchronously loads the asset(s) from the bytes provided by Reader.

source

fn extensions(&self) -> &[&str]

Returns a list of extensions supported by this asset loader, without the preceding dot.

source

fn deserialize_meta( &self, meta: &[u8] ) -> Result<Box<dyn AssetMetaDyn>, DeserializeMetaError>

Deserializes metadata from the input meta bytes into the appropriate type (erased as Box<dyn AssetMetaDyn>).

source

fn default_meta(&self) -> Box<dyn AssetMetaDyn>

Returns the default meta value for the AssetLoader (erased as Box<dyn AssetMetaDyn>).

source

fn type_name(&self) -> &'static str

Returns the type name of the AssetLoader.

source

fn type_id(&self) -> TypeId

Returns the TypeId of the AssetLoader.

source

fn asset_type_name(&self) -> &'static str

Returns the type name of the top-level Asset loaded by the AssetLoader.

source

fn asset_type_id(&self) -> TypeId

Returns the TypeId of the top-level Asset loaded by the AssetLoader.

Implementors§

source§

impl<L> ErasedAssetLoader for L
where L: AssetLoader + Send + Sync,