Move db traits into own file
This commit is contained in:
parent
9b7463f68a
commit
b6197ce04d
@ -1,29 +1,11 @@
|
|||||||
extern crate rocksdb;
|
extern crate rocksdb;
|
||||||
|
|
||||||
mod disk_db;
|
mod disk_db;
|
||||||
|
mod traits;
|
||||||
|
|
||||||
pub use self::disk_db::DiskDB;
|
pub use self::disk_db::DiskDB;
|
||||||
|
pub use self::traits::{
|
||||||
type DBValue = Vec<u8>;
|
DBError,
|
||||||
|
DBValue,
|
||||||
#[derive(Debug)]
|
ClientDB,
|
||||||
pub struct DBError {
|
};
|
||||||
message: String
|
|
||||||
}
|
|
||||||
|
|
||||||
impl DBError {
|
|
||||||
pub fn new(message: String) -> Self {
|
|
||||||
Self { message }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub trait ClientDB: Sync + Send {
|
|
||||||
fn create_col(&mut self, col: &str)
|
|
||||||
-> Result<(), DBError>;
|
|
||||||
|
|
||||||
fn get(&self, col: &str, key: &[u8])
|
|
||||||
-> Result<Option<DBValue>, DBError>;
|
|
||||||
|
|
||||||
fn put(&self, col: &str, key: &[u8], val: &[u8])
|
|
||||||
-> Result<(), DBError>;
|
|
||||||
}
|
|
||||||
|
30
lighthouse/db/traits.rs
Normal file
30
lighthouse/db/traits.rs
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
pub type DBValue = Vec<u8>;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct DBError {
|
||||||
|
pub message: String
|
||||||
|
}
|
||||||
|
|
||||||
|
impl DBError {
|
||||||
|
pub fn new(message: String) -> Self {
|
||||||
|
Self { message }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// A generic database to be used by the "client' (i.e.,
|
||||||
|
/// the lighthouse blockchain client).
|
||||||
|
///
|
||||||
|
/// The purpose of having this generic trait is to allow the
|
||||||
|
/// program to use a persistent on-disk database during production,
|
||||||
|
/// but use a transient database during tests.
|
||||||
|
pub trait ClientDB: Sync + Send {
|
||||||
|
fn create_col(&mut self, col: &str)
|
||||||
|
-> Result<(), DBError>;
|
||||||
|
|
||||||
|
fn get(&self, col: &str, key: &[u8])
|
||||||
|
-> Result<Option<DBValue>, DBError>;
|
||||||
|
|
||||||
|
fn put(&self, col: &str, key: &[u8], val: &[u8])
|
||||||
|
-> Result<(), DBError>;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user