[][src]Trait assets_manager::Loader

pub trait Loader<T> {
    fn load(content: Vec<u8>) -> Result<T, Box<dyn Error + Send + Sync>>;
}

Specifies how an asset is loaded.

With this trait, you can easily specify how you want your data to be loaded.

Basic usage

Most of the time, you don't need to implement this trait yourself, as there are implementations for the most formats (using serde). Don't forget to enable the corresponding feature !

use serde::Deserialize;
use assets_manager::{Asset, loader};

// The struct you want to load
#[derive(Deserialize)]
struct Point {
    x: i32,
    y: i32,
}

impl Asset for Point {
    const EXT: &'static str = "ron";

    // Specify here how to convert raw data
    type Loader = loader::RonLoader;
}

Required methods

fn load(content: Vec<u8>) -> Result<T, Box<dyn Error + Send + Sync>>

Loads an asset from its raw bytes representation.

Loading content...

Implementors

impl Loader<String> for StringLoader[src]

impl<T> Loader<T> for BincodeLoader where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> Loader<T> for CborLoader where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> Loader<T> for CustomLoader[src]

impl<T> Loader<T> for JsonLoader where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> Loader<T> for MessagePackLoader where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> Loader<T> for ParseLoader where
    T: FromStr,
    <T as FromStr>::Err: Error + Send + Sync + 'static, 
[src]

impl<T> Loader<T> for RonLoader where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> Loader<T> for TomlLoader where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> Loader<T> for YamlLoader where
    T: for<'de> Deserialize<'de>, 
[src]

Loading content...