aboutsummaryrefslogtreecommitdiffstats
path: root/log_db/src/config.rs
diff options
context:
space:
mode:
Diffstat (limited to 'log_db/src/config.rs')
-rw-r--r--log_db/src/config.rs44
1 files changed, 5 insertions, 39 deletions
diff --git a/log_db/src/config.rs b/log_db/src/config.rs
index ec74164..e8c6fa1 100644
--- a/log_db/src/config.rs
+++ b/log_db/src/config.rs
@@ -1,12 +1,6 @@
use super::*;
-pub struct Schema<F> {
- pub fields: Vec<F>,
- pub primary_key: F,
- pub secondary_keys: Vec<F>,
-}
-
-pub struct ConfigBuilder<T> {
+pub struct ConfigBuilder {
data_dir: Option<String>,
segment_size: Option<usize>,
write_durability: Option<WriteDurability>,
@@ -15,14 +9,10 @@ pub struct ConfigBuilder<T> {
fields: Option<Vec<String>>,
primary_key: Option<String>,
secondary_keys: Option<Vec<String>>,
- from_record: Option<fn(Vec<Value>) -> T>,
- into_record: Option<fn(T) -> Vec<Value>>,
-
- _marker: PhantomData<T>,
}
-impl<T> ConfigBuilder<T> {
- pub fn new() -> ConfigBuilder<T> {
+impl ConfigBuilder {
+ pub fn new() -> ConfigBuilder {
ConfigBuilder {
data_dir: None,
segment_size: None,
@@ -32,10 +22,6 @@ impl<T> ConfigBuilder<T> {
fields: None,
primary_key: None,
secondary_keys: None,
- from_record: None,
- into_record: None,
-
- _marker: PhantomData,
}
}
@@ -86,36 +72,18 @@ impl<T> ConfigBuilder<T> {
self
}
- pub fn from_record(mut self, from_record: fn(Vec<Value>) -> T) -> Self {
- self.from_record = Some(from_record);
- self
- }
-
- pub fn into_record(mut self, into_record: fn(T) -> Vec<Value>) -> Self {
- self.into_record = Some(into_record);
- self
- }
-
- pub fn initialize(self) -> DBResult<DB<T>> {
+ pub fn initialize(self) -> DBResult<DB> {
let schema = self
.fields
.ok_or_else(|| DBError::ValidationError("Schema not set".to_string()))?;
let primary_key = self
.primary_key
.ok_or_else(|| DBError::ValidationError("Primary key not set".to_string()))?;
- let from_record = self
- .from_record
- .ok_or_else(|| DBError::ValidationError("Callback from_record not set".to_string()))?;
- let into_record = self
- .into_record
- .ok_or_else(|| DBError::ValidationError("Callback into_record not set".to_string()))?;
let config = Config {
schema,
primary_key,
secondary_keys: self.secondary_keys.unwrap_or_default(),
- from_record,
- into_record,
data_dir: self.data_dir.clone().unwrap_or("db_data".to_string()),
segment_size: self.segment_size.unwrap_or(4 * 1024 * 1024), // 4MB
@@ -134,12 +102,10 @@ impl<T> ConfigBuilder<T> {
}
#[derive(Clone)]
-pub struct Config<T> {
+pub struct Config {
pub schema: Vec<String>,
pub primary_key: String,
pub secondary_keys: Vec<String>,
- pub from_record: fn(Vec<Value>) -> T,
- pub into_record: fn(T) -> Vec<Value>,
pub data_dir: String,
pub segment_size: usize,
pub write_durability: WriteDurability,