pub trait Storage {
    // Required methods
    fn exists<K>(&self, key: K) -> bool
       where K: AsRef<str>;
    fn clear(&mut self);
    fn remove<K>(&mut self, key: K) -> Result<(), RemoveError>
       where K: AsRef<str>;
    fn load_raw<K>(&self, key: K) -> Result<Vec<u8, Global>, LoadRawError>
       where K: AsRef<str>;
    fn store_raw<K, V>(&mut self, key: K, value: V) -> Result<(), StoreRawError>
       where K: AsRef<str>,
             V: AsRef<[u8]>;

    // Provided methods
    fn load<K, T, F>(
        &self,
        key: K,
        format: F
    ) -> Result<T, LoadError<<F as StorageFormat>::DeserializeError>>
       where K: AsRef<str>,
             T: DeserializeOwned,
             F: StorageFormat { ... }
    fn store<K, T, F>(
        &mut self,
        key: K,
        value: &T,
        format: F
    ) -> Result<(), StoreError<<F as StorageFormat>::SerializeError>>
       where K: AsRef<str>,
             T: Serialize,
             F: StorageFormat { ... }
}

Required Methods§

source

fn exists<K>(&self, key: K) -> boolwhere K: AsRef<str>,

source

fn clear(&mut self)

source

fn remove<K>(&mut self, key: K) -> Result<(), RemoveError>where K: AsRef<str>,

source

fn load_raw<K>(&self, key: K) -> Result<Vec<u8, Global>, LoadRawError>where K: AsRef<str>,

source

fn store_raw<K, V>(&mut self, key: K, value: V) -> Result<(), StoreRawError>where K: AsRef<str>, V: AsRef<[u8]>,

Provided Methods§

source

fn load<K, T, F>( &self, key: K, format: F ) -> Result<T, LoadError<<F as StorageFormat>::DeserializeError>>where K: AsRef<str>, T: DeserializeOwned, F: StorageFormat,

source

fn store<K, T, F>( &mut self, key: K, value: &T, format: F ) -> Result<(), StoreError<<F as StorageFormat>::SerializeError>>where K: AsRef<str>, T: Serialize, F: StorageFormat,

Implementors§