Mercurial > lbo > hg > leveldb-rs
changeset 160:28698cadc1de
Start TableCache implementation
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sun, 09 Jul 2017 20:34:55 +0200 |
parents | 18e0fb2d6a4e |
children | 923d7cbdbb1e |
files | src/lib.rs src/table_cache.rs |
diffstat | 2 files changed, 44 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib.rs Sun Jul 09 20:34:43 2017 +0200 +++ b/src/lib.rs Sun Jul 09 20:34:55 2017 +0200 @@ -22,6 +22,7 @@ mod skipmap; mod snapshot; mod table_builder; +mod table_cache; mod table_reader; mod types; mod version_edit;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/table_cache.rs Sun Jul 09 20:34:55 2017 +0200 @@ -0,0 +1,43 @@ + +use cache::Cache; +use env::RandomAccessFile; +use options::Options; +use table_reader::Table; + +const DEFAULT_SUFFIX: &str = "ldb"; + +fn table_name(name: &str, num: usize, suff: &str) -> String { + assert!(num > 0); + format!("{}/{:06}.{}", name, num, suff) +} + +struct TableAndFile { + file: Box<RandomAccessFile>, + table: Table, +} + +pub struct TableCache { + dbname: String, + cache: Cache<TableAndFile>, + opts: Options, +} + +impl TableCache { + pub fn new(db: &str, opt: Options, entries: usize) -> TableCache { + TableCache { + dbname: String::from(db), + cache: Cache::new(entries), + opts: opt, + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_table_name() { + assert_eq!("abc/000122.ldb", table_name("abc", 122, "ldb")); + } +}