History

Trait History 

Source
pub trait History: Send {
    // Required methods
    fn save(&mut self, h: HistoryItem) -> Result<HistoryItem>;
    fn load(&self, id: HistoryItemId) -> Result<HistoryItem>;
    fn count(&self, query: SearchQuery) -> Result<i64>;
    fn search(&self, query: SearchQuery) -> Result<Vec<HistoryItem>>;
    fn update(
        &mut self,
        id: HistoryItemId,
        updater: &dyn Fn(HistoryItem) -> HistoryItem,
    ) -> Result<()>;
    fn clear(&mut self) -> Result<()>;
    fn delete(&mut self, h: HistoryItemId) -> Result<()>;
    fn sync(&mut self) -> Result<()>;
    fn session(&self) -> Option<HistorySessionId>;

    // Provided method
    fn count_all(&self) -> Result<i64> { ... }
}
Expand description

Represents a history file or database Data could be stored e.g. in a plain text file, in a JSONL file, in a SQLite database

Required Methods§

Source

fn save(&mut self, h: HistoryItem) -> Result<HistoryItem>

save a history item to the database if given id is None, a new id is created and set in the return value if given id is Some, the existing entry is updated

Source

fn load(&self, id: HistoryItemId) -> Result<HistoryItem>

load a history item by its id

Source

fn count(&self, query: SearchQuery) -> Result<i64>

retrieves the next unused session id count the results of a query

Source

fn search(&self, query: SearchQuery) -> Result<Vec<HistoryItem>>

return the results of a query

Source

fn update( &mut self, id: HistoryItemId, updater: &dyn Fn(HistoryItem) -> HistoryItem, ) -> Result<()>

update an item atomically

Source

fn clear(&mut self) -> Result<()>

delete all history items

Source

fn delete(&mut self, h: HistoryItemId) -> Result<()>

remove an item from this history

Source

fn sync(&mut self) -> Result<()>

ensure that this history is written to disk

Source

fn session(&self) -> Option<HistorySessionId>

get the history session id

Provided Methods§

Source

fn count_all(&self) -> Result<i64>

return the total number of history items

Implementors§