diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2024-10-07 14:44:18 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2024-10-07 15:16:03 +0300 |
| commit | 02224c78f33aa183c57d72a0da06d58545b1a350 (patch) | |
| tree | bf1016fec0b1e29fd2178b3fabc19075ca6a2f0a /log_db/src | |
| parent | a4efc83f7f29c6ef8ac9b4c57201c9ecc31266b3 (diff) | |
Implement some of the py bindings
Diffstat (limited to 'log_db/src')
| -rw-r--r-- | log_db/src/lib.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/log_db/src/lib.rs b/log_db/src/lib.rs index 6787cf1..9c25dd8 100644 --- a/log_db/src/lib.rs +++ b/log_db/src/lib.rs @@ -21,19 +21,19 @@ use std::os::unix::fs::MetadataExt; use std::path::{Path, PathBuf}; use std::thread; -pub struct ConfigBuilder<'a, Field: Eq + Clone + Debug> { +pub struct ConfigBuilder<Field: Eq + Clone + Debug> { data_dir: Option<String>, segment_size: Option<usize>, memtable_capacity: Option<usize>, - fields: Option<&'a Vec<(Field, RecordField)>>, + fields: Option<Vec<(Field, RecordField)>>, primary_key: Option<Field>, secondary_keys: Option<Vec<Field>>, memtable_evict_policy: Option<MemtableEvictPolicy>, write_durability: Option<WriteDurability>, } -impl<'a, Field: Eq + Clone + Debug> ConfigBuilder<'a, Field> { - pub fn new() -> ConfigBuilder<'a, Field> { +impl<'a, Field: Eq + Clone + Debug> ConfigBuilder<Field> { + pub fn new() -> ConfigBuilder<Field> { ConfigBuilder::<Field> { data_dir: None, segment_size: None, @@ -68,8 +68,8 @@ impl<'a, Field: Eq + Clone + Debug> ConfigBuilder<'a, Field> { } /// The field schema of the database. - pub fn fields(&mut self, fields: &'a Vec<(Field, RecordField)>) -> &mut Self { - self.fields = Some(fields); + pub fn fields(&mut self, fields: Vec<(Field, RecordField)>) -> &mut Self { + self.fields = Some(fields.clone()); self } @@ -114,6 +114,7 @@ impl<'a, Field: Eq + Clone + Debug> ConfigBuilder<'a, Field> { memtable_capacity: self.memtable_capacity.unwrap_or(1_000_000), fields: self .fields + .as_ref() .ok_or(io::Error::new( io::ErrorKind::InvalidInput, "Required config value \"fields\" is not set", @@ -161,7 +162,7 @@ pub struct DB<Field: Eq + Clone + Debug> { impl<Field: Eq + Clone + Debug> DB<Field> { /// Create a new database configuration builder. - pub fn configure() -> ConfigBuilder<'static, Field> { + pub fn configure() -> ConfigBuilder<Field> { ConfigBuilder::new() } |
