pub trait QueryBackend: Send {
    fn count<'q>(
        &'q mut self,
        kind: EntryKind,
        category: &'q str,
        tag_filter: Option<TagFilter>
    ) -> BoxFuture<'q, Result<i64, Error>>;
fn fetch<'q>(
        &'q mut self,
        kind: EntryKind,
        category: &'q str,
        name: &'q str,
        for_update: bool
    ) -> BoxFuture<'q, Result<Option<Entry>, Error>>;
fn fetch_all<'q>(
        &'q mut self,
        kind: EntryKind,
        category: &'q str,
        tag_filter: Option<TagFilter>,
        limit: Option<i64>,
        for_update: bool
    ) -> BoxFuture<'q, Result<Vec<Entry>, Error>>;
fn remove_all<'q>(
        &'q mut self,
        kind: EntryKind,
        category: &'q str,
        tag_filter: Option<TagFilter>
    ) -> BoxFuture<'q, Result<i64, Error>>;
fn update<'q>(
        &'q mut self,
        kind: EntryKind,
        operation: EntryOperation,
        category: &'q str,
        name: &'q str,
        value: Option<&'q [u8]>,
        tags: Option<&'q [EntryTag]>,
        expiry_ms: Option<i64>
    ) -> BoxFuture<'q, Result<(), Error>>;
fn close(self, commit: bool) -> BoxFuture<'static, Result<(), Error>>; }
Expand description

Query from a generic backend implementation

Required methods

Count the number of matching records in the store

Fetch a single record from the store by category and name

Fetch all matching records from the store

Remove all matching records from the store

Insert or replace a record in the store

Close the current store session

Implementors