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§
sourcefn save(&mut self, h: HistoryItem) -> Result<HistoryItem>
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
sourcefn load(&self, id: HistoryItemId) -> Result<HistoryItem>
fn load(&self, id: HistoryItemId) -> Result<HistoryItem>
load a history item by its id
sourcefn count(&self, query: SearchQuery) -> Result<i64>
fn count(&self, query: SearchQuery) -> Result<i64>
retrieves the next unused session id count the results of a query
sourcefn search(&self, query: SearchQuery) -> Result<Vec<HistoryItem>>
fn search(&self, query: SearchQuery) -> Result<Vec<HistoryItem>>
return the results of a query
sourcefn update(
&mut self,
id: HistoryItemId,
updater: &dyn Fn(HistoryItem) -> HistoryItem
) -> Result<()>
fn update( &mut self, id: HistoryItemId, updater: &dyn Fn(HistoryItem) -> HistoryItem ) -> Result<()>
update an item atomically
sourcefn delete(&mut self, h: HistoryItemId) -> Result<()>
fn delete(&mut self, h: HistoryItemId) -> Result<()>
remove an item from this history
sourcefn session(&self) -> Option<HistorySessionId>
fn session(&self) -> Option<HistorySessionId>
get the history session id