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§
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 Methods§
fn get( &self, id: &Uuid, hmac: Option<&DocumentHmac>, ) -> SharedResult<EncryptedDocument>
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.