Trait lb_rs::DocumentService

source ·
pub trait DocumentService: Clone + Send + 'static {
    // Required methods
    fn insert(
        &self,
        id: &Uuid,
        hmac: Option<&[u8; 32]>,
        document: &AESEncrypted<Vec<u8>>,
    ) -> Result<(), SharedError>;
    fn maybe_get(
        &self,
        id: &Uuid,
        hmac: Option<&[u8; 32]>,
    ) -> Result<Option<AESEncrypted<Vec<u8>>>, SharedError>;
    fn delete(
        &self,
        id: &Uuid,
        hmac: Option<&[u8; 32]>,
    ) -> Result<(), SharedError>;
    fn retain(
        &self,
        file_hmacs: HashSet<(&Uuid, &[u8; 32])>,
    ) -> Result<(), SharedError>;

    // Provided method
    fn get(
        &self,
        id: &Uuid,
        hmac: Option<&[u8; 32]>,
    ) -> Result<AESEncrypted<Vec<u8>>, SharedError> { ... }
}

Required Methods§

source

fn insert( &self, id: &Uuid, hmac: Option<&[u8; 32]>, document: &AESEncrypted<Vec<u8>>, ) -> Result<(), SharedError>

source

fn maybe_get( &self, id: &Uuid, hmac: Option<&[u8; 32]>, ) -> Result<Option<AESEncrypted<Vec<u8>>>, SharedError>

source

fn delete(&self, id: &Uuid, hmac: Option<&[u8; 32]>) -> Result<(), SharedError>

source

fn retain( &self, file_hmacs: HashSet<(&Uuid, &[u8; 32])>, ) -> Result<(), SharedError>

Provided Methods§

source

fn get( &self, id: &Uuid, hmac: Option<&[u8; 32]>, ) -> Result<AESEncrypted<Vec<u8>>, SharedError>

Object Safety§

This trait is not object safe.

Implementors§