changeset 158:c15ac746e903

Add Env and FilterPolicy members to Options.
author Lewin Bormann <lbo@spheniscida.de>
date Sun, 09 Jul 2017 20:33:43 +0200
parents de83256f4423
children 18e0fb2d6a4e
files src/options.rs
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/options.rs	Sun Jul 09 20:33:20 2017 +0200
+++ b/src/options.rs	Sun Jul 09 20:33:43 2017 +0200
@@ -1,6 +1,9 @@
-use table_reader::TableBlock;
 use cache::Cache;
 use cmp::{Cmp, DefaultCmp};
+use disk_env;
+use env::Env;
+use filter;
+use table_reader::TableBlock;
 use types::SequenceNumber;
 
 use std::default::Default;
@@ -12,6 +15,7 @@
 const BLOCK_MAX_SIZE: usize = 4 * KB;
 const BLOCK_CACHE_CAPACITY: usize = 8 * MB;
 const WRITE_BUFFER_SIZE: usize = 4 * MB;
+const DEFAULT_BITS_PER_KEY: u32 = 10; // NOTE: This may need to be optimized.
 
 #[derive(Clone, Copy, PartialEq, Debug)]
 pub enum CompressionType {
@@ -32,6 +36,7 @@
 #[derive(Clone)]
 pub struct Options {
     pub cmp: Arc<Box<Cmp>>,
+    pub env: Arc<Box<Env>>,
     pub create_if_missing: bool,
     pub error_if_exists: bool,
     pub paranoid_checks: bool,
@@ -43,12 +48,14 @@
     pub block_restart_interval: usize,
     pub compression_type: CompressionType,
     pub reuse_logs: bool,
+    pub filter_policy: filter::BoxedFilterPolicy,
 }
 
 impl Default for Options {
     fn default() -> Options {
         Options {
             cmp: Arc::new(Box::new(DefaultCmp)),
+            env: Arc::new(Box::new(disk_env::PosixDiskEnv::new())),
             create_if_missing: true,
             error_if_exists: false,
             paranoid_checks: false,
@@ -60,6 +67,7 @@
             block_restart_interval: 16,
             reuse_logs: false,
             compression_type: CompressionType::CompressionNone,
+            filter_policy: filter::BloomPolicy::new(DEFAULT_BITS_PER_KEY),
         }
     }
 }