pub trait ResourceLoader: Send + Sync {
type Resource: Send + Sync;
type Error: Error + Send + Sync + 'static + From<Error> + From<Error>;
// Required methods
fn load_from_bytes(
&self,
bytes: Vec<u8>,
) -> Result<Self::Resource, Self::Error>;
fn label(&self) -> &'static str;
// Provided methods
fn load_from_path(&self, path: &str) -> Result<Self::Resource, Self::Error> { ... }
fn load_all(
&self,
root: &str,
) -> Result<HashMap<Identifier, Self::Resource>, Self::Error> { ... }
}Expand description
Abstraction of a resource loader