1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
pub mod engines;

pub mod prelude {
    pub use super::{engines::prelude::*, engines::*};
}

#[derive(Debug, Clone)]
pub enum StorageError {
    /// path to resource.
    CouldNotLoadData(String),
    /// path to resource.
    CouldNotStoreData(String),
}

pub type StorageResult<T> = Result<T, StorageError>;

pub trait StorageEngine: Send + Sync {
    fn load(&mut self, path: &str) -> StorageResult<Vec<u8>>;
    fn store(&mut self, path: &str, data: &[u8]) -> StorageResult<()>;
}