persistent_keystore_rs/
prelude.rs

1use 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}