Make LevelDB key type concrete (not generic)

This commit is contained in:
Paul Hauner
2019-05-21 16:49:56 +10:00
parent 54f28df5b1
commit 78368cc2cd
2 changed files with 8 additions and 8 deletions

View File

@@ -6,11 +6,11 @@ use leveldb::error::Error as LevelDBError;
use leveldb::options::{Options, ReadOptions, WriteOptions};
use std::path::Path;
pub struct LevelDB<K: Key> {
db: Database<K>,
pub struct LevelDB {
db: Database<BytesKey>,
}
impl<K: Key> LevelDB<K> {
impl LevelDB {
pub fn open(path: &Path) -> Result<Self, Error> {
let mut options = Options::new();
@@ -21,7 +21,7 @@ impl<K: Key> LevelDB<K> {
Ok(Self { db })
}
fn read_options(&self) -> ReadOptions<K> {
fn read_options(&self) -> ReadOptions<BytesKey> {
ReadOptions::new()
}
@@ -50,7 +50,7 @@ impl Key for BytesKey {
}
}
impl Store for LevelDB<BytesKey> {
impl Store for LevelDB {
fn get_bytes(&self, col: &str, key: &[u8]) -> Result<Option<DBValue>, Error> {
let column_key = Self::get_key_for_col(col, key);

View File

@@ -5,7 +5,7 @@ mod impls;
mod leveldb_store;
mod memory_db;
pub use self::leveldb_store::LevelDB;
pub use self::leveldb_store::LevelDB as DiskDB;
pub use self::memory_db::MemoryDB;
pub use errors::Error;
pub use types::*;
@@ -151,10 +151,10 @@ mod tests {
}
#[test]
fn leveldb() {
fn diskdb() {
let dir = tempdir().unwrap();
let path = dir.path();
let store = LevelDB::open(&path).unwrap();
let store = DiskDB::open(&path).unwrap();
test_impl(store);
}