aboutsummaryrefslogtreecommitdiffstats
path: root/log_db/src
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2024-10-07 14:44:18 +0300
committerJan Tuomi <jan@jantuomi.fi>2024-10-07 15:16:03 +0300
commit02224c78f33aa183c57d72a0da06d58545b1a350 (patch)
treebf1016fec0b1e29fd2178b3fabc19075ca6a2f0a /log_db/src
parenta4efc83f7f29c6ef8ac9b4c57201c9ecc31266b3 (diff)
Implement some of the py bindings
Diffstat (limited to 'log_db/src')
-rw-r--r--log_db/src/lib.rs15
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()
}