pub trait KVStorage {
    // Required methods
    fn available(&self) -> Result<(), Error>;
    fn get<T: DeserializeOwned>(
        &self,
        key: &str
    ) -> Result<GetResponse<T>, Error>;
    fn set<T: Serialize>(&mut self, key: &str, value: T) -> Result<(), Error>;
    fn reset_and_clear(&mut self) -> Result<(), Error>;
}
Expand description

A secure key/value storage engine. Create takes a policy that is enforced internally by the actual backend. The policy contains public identities that the backend can translate into a unique and private token for another service. Hence get and set internally will pass the current service private token to the backend to gain its permissions.

Required Methods§

source

fn available(&self) -> Result<(), Error>

Returns an error if the backend service is not online and available.

source

fn get<T: DeserializeOwned>(&self, key: &str) -> Result<GetResponse<T>, Error>

Retrieves a value from storage and fails if the backend is unavailable or the process has invalid permissions.

source

fn set<T: Serialize>(&mut self, key: &str, value: T) -> Result<(), Error>

Sets a value in storage and fails if the backend is unavailable or the process has invalid permissions.

source

fn reset_and_clear(&mut self) -> Result<(), Error>

Resets and clears all data held in the storage engine. Note: this should only be exposed and used for testing. Resetting the storage engine is not something that should be supported in production.

Implementations on Foreign Types§

source§

impl<'a, S> KVStorage for &'a mut Swhere S: KVStorage,

source§

fn available(&self) -> Result<(), Error>

source§

fn get<T: DeserializeOwned>(&self, key: &str) -> Result<GetResponse<T>, Error>

source§

fn set<T: Serialize>(&mut self, key: &str, value: T) -> Result<(), Error>

source§

fn reset_and_clear(&mut self) -> Result<(), Error>

source§

impl KVStorage for Box<Storage>

source§

fn available(&self) -> Result<(), Error>

source§

fn get<T: DeserializeOwned>(&self, key: &str) -> Result<GetResponse<T>, Error>

source§

fn set<T: Serialize>(&mut self, key: &str, value: T) -> Result<(), Error>

source§

fn reset_and_clear(&mut self) -> Result<(), Error>

Implementors§