Trait DocumentService

Source
pub trait DocumentService:
    Clone
    + Send
    + 'static {
    // Required methods
    fn insert(
        &self,
        id: &Uuid,
        hmac: Option<&DocumentHmac>,
        document: &EncryptedDocument,
    ) -> SharedResult<()>;
    fn maybe_get(
        &self,
        id: &Uuid,
        hmac: Option<&DocumentHmac>,
    ) -> SharedResult<Option<EncryptedDocument>>;
    fn delete(&self, id: &Uuid, hmac: Option<&DocumentHmac>) -> SharedResult<()>;
    fn retain(
        &self,
        file_hmacs: HashSet<(&Uuid, &DocumentHmac)>,
    ) -> SharedResult<()>;

    // Provided method
    fn get(
        &self,
        id: &Uuid,
        hmac: Option<&DocumentHmac>,
    ) -> SharedResult<EncryptedDocument> { ... }
}

Required Methods§

Source

fn insert( &self, id: &Uuid, hmac: Option<&DocumentHmac>, document: &EncryptedDocument, ) -> SharedResult<()>

Source

fn maybe_get( &self, id: &Uuid, hmac: Option<&DocumentHmac>, ) -> SharedResult<Option<EncryptedDocument>>

Source

fn delete(&self, id: &Uuid, hmac: Option<&DocumentHmac>) -> SharedResult<()>

Source

fn retain( &self, file_hmacs: HashSet<(&Uuid, &DocumentHmac)>, ) -> SharedResult<()>

Provided Methods§

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§