persistent_keystore_rs/
prelude.rs1use std::collections::HashMap;
2#[cfg(feature = "mocks")]
3use mockall::automock;
4
5use crate::structs::*;
6use crate::errors::*;
7
8#[cfg_attr(feature = "mocks", automock)]
9pub trait DatabaseClient {
10 fn save(self: &mut Self) -> Result<(), DatabaseError>;
11 fn create_table(self: &mut Self, table: Table) -> Result<(), DatabaseError>;
12 fn list_tables(self: &mut Self) -> Result<Vec<String>, DatabaseError>;
13 fn drop_table(self: &mut Self, table: &String) -> Result<(), DatabaseError>;
14 fn insert(self: &mut Self, table: String, entry: Entry) -> Result<(), DatabaseError>;
15 fn insert_or_update(self: &mut Self, table: String, entry: Entry) -> Result<(), DatabaseError>;
16 fn update(self: &mut Self, table: String, entry: Entry) -> Result<(), DatabaseError>;
17 fn get(self: &mut Self, table: String, primary_field: Field) -> Result<Entry, DatabaseError>;
18 fn delete(self: &mut Self, table: String, primary_field: Field) -> Result<(), DatabaseError>;
19 fn delete_many(self: &mut Self, table: String, criteria: HashMap<String, Field>) -> Result<u64, DatabaseError>;
20 fn scan(self: &mut Self, table: String) -> Result<Vec<Entry>, DatabaseError>;
21 fn query(self: &mut Self, table: String, criteria: HashMap<String, Field>) -> Result<Vec<Entry>, DatabaseError>;
22 fn prune(self: &mut Self) -> Result<(), DatabaseError>;
23}