Trait Storage

Source
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>, 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) -> bool
where 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>, 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>>

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,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§