changeset 13:6a28e181a306

Rename Options->BuildOptions, and add ReadOptions
author Lewin Bormann <lbo@spheniscida.de>
date Mon, 21 Nov 2016 19:26:37 +0100
parents 8c5ce706ec9d
children e169ac78539d
files src/block.rs src/lib.rs src/options.rs src/table_builder.rs src/table_reader.rs
diffstat 5 files changed, 36 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/src/block.rs	Sun Nov 20 20:41:59 2016 +0100
+++ b/src/block.rs	Mon Nov 21 19:26:37 2016 +0100
@@ -2,7 +2,7 @@
 
 use std::rc::Rc;
 
-use options::Options;
+use options::BuildOptions;
 use iterator::{SSIterator, Comparator};
 
 use integer_encoding::FixedInt;
@@ -249,7 +249,7 @@
 }
 
 pub struct BlockBuilder<C: Comparator> {
-    opt: Options,
+    opt: BuildOptions,
     cmp: C,
     buffer: Vec<u8>,
     restarts: Vec<u32>,
@@ -259,7 +259,7 @@
 }
 
 impl<C: Comparator> BlockBuilder<C> {
-    pub fn new(o: Options, cmp: C) -> BlockBuilder<C> {
+    pub fn new(o: BuildOptions, cmp: C) -> BlockBuilder<C> {
         let mut restarts = vec![0];
         restarts.reserve(1023);
 
@@ -375,7 +375,7 @@
 
     #[test]
     fn test_block_builder() {
-        let mut o = Options::default();
+        let mut o = BuildOptions::default();
         o.block_restart_interval = 3;
 
         let mut builder = BlockBuilder::new(o, StandardComparator);
@@ -393,7 +393,7 @@
 
     #[test]
     fn test_block_builder_reset() {
-        let o = Options::default();
+        let o = BuildOptions::default();
 
         let mut builder = BlockBuilder::new(o, StandardComparator);
 
@@ -406,7 +406,7 @@
 
     #[test]
     fn test_block_empty() {
-        let mut o = Options::default();
+        let mut o = BuildOptions::default();
         o.block_restart_interval = 16;
         let builder = BlockBuilder::new(o, StandardComparator);
 
@@ -424,7 +424,7 @@
     #[test]
     fn test_block_build_iterate() {
         let data = get_data();
-        let mut builder = BlockBuilder::new(Options::default(), StandardComparator);
+        let mut builder = BlockBuilder::new(BuildOptions::default(), StandardComparator);
 
         for &(k, v) in data.iter() {
             builder.add(k, v);
@@ -455,7 +455,7 @@
 
     #[test]
     fn test_block_iterate_reverse() {
-        let mut o = Options::default();
+        let mut o = BuildOptions::default();
         o.block_restart_interval = 3;
         let data = get_data();
         let mut builder = BlockBuilder::new(o, StandardComparator);
@@ -483,7 +483,7 @@
 
     #[test]
     fn test_block_seek() {
-        let mut o = Options::default();
+        let mut o = BuildOptions::default();
         o.block_restart_interval = 3;
 
         let data = get_data();
@@ -515,7 +515,7 @@
 
     #[test]
     fn test_block_seek_to_last() {
-        let mut o = Options::default();
+        let mut o = BuildOptions::default();
 
         // Test with different number of restarts
         for block_restart_interval in vec![2, 6, 10] {
--- a/src/lib.rs	Sun Nov 20 20:41:59 2016 +0100
+++ b/src/lib.rs	Mon Nov 21 19:26:37 2016 +0100
@@ -11,7 +11,7 @@
 
 pub use iterator::StandardComparator;
 pub use iterator::SSIterator;
-pub use options::Options;
+pub use options::{BuildOptions, ReadOptions};
 
 pub use table_builder::TableBuilder;
 pub use table_reader::{Table, TableIterator};
--- a/src/options.rs	Sun Nov 20 20:41:59 2016 +0100
+++ b/src/options.rs	Mon Nov 21 19:26:37 2016 +0100
@@ -9,19 +9,30 @@
 /// [not all member types implemented yet]
 ///
 #[derive(Clone, Copy)]
-pub struct Options {
+pub struct BuildOptions {
     pub block_size: usize,
     pub block_restart_interval: usize,
     // Note: Compression is not implemented.
     pub compression_type: CompressionType,
 }
 
-impl Default for Options {
-    fn default() -> Options {
-        Options {
+impl Default for BuildOptions {
+    fn default() -> BuildOptions {
+        BuildOptions {
             block_size: 4 * (1 << 10),
             block_restart_interval: 16,
             compression_type: CompressionType::CompressionNone,
         }
     }
 }
+
+#[derive(Clone, Copy)]
+pub struct ReadOptions {
+    pub skip_bad_blocks: bool
+}
+
+impl Default for ReadOptions {
+    fn default() -> ReadOptions {
+        ReadOptions { skip_bad_blocks: true }
+    }
+}
--- a/src/table_builder.rs	Sun Nov 20 20:41:59 2016 +0100
+++ b/src/table_builder.rs	Mon Nov 21 19:26:37 2016 +0100
@@ -1,6 +1,6 @@
 use block::{BlockBuilder, BlockContents};
 use blockhandle::BlockHandle;
-use options::{CompressionType, Options};
+use options::{CompressionType, BuildOptions};
 use iterator::{Comparator, StandardComparator};
 
 use std::io::Write;
@@ -86,7 +86,7 @@
 /// 0xdb4775248b80fb57.
 
 pub struct TableBuilder<C: Comparator, Dst: Write> {
-    o: Options,
+    o: BuildOptions,
     cmp: C,
     dst: Dst,
 
@@ -100,16 +100,16 @@
 
 impl<Dst: Write> TableBuilder<StandardComparator, Dst> {
 
-    /// Create a new TableBuilder with default comparator and options.
+    /// Create a new TableBuilder with default comparator and BuildOptions.
     pub fn new_defaults(dst: Dst) -> TableBuilder<StandardComparator, Dst> {
-        TableBuilder::new(Options::default(), StandardComparator, dst)
+        TableBuilder::new(BuildOptions::default(), StandardComparator, dst)
     }
 }
 
 impl<C: Comparator, Dst: Write> TableBuilder<C, Dst> {
 
     /// Create a new TableBuilder.
-    pub fn new(opt: Options, cmp: C, dst: Dst) -> TableBuilder<C, Dst> {
+    pub fn new(opt: BuildOptions, cmp: C, dst: Dst) -> TableBuilder<C, Dst> {
         TableBuilder {
             o: opt,
             cmp: cmp,
@@ -219,7 +219,7 @@
     use super::{find_shortest_sep, Footer, TableBuilder};
     use iterator::StandardComparator;
     use blockhandle::BlockHandle;
-    use options::Options;
+    use options::BuildOptions;
 
     #[test]
     fn test_shortest_sep() {
@@ -254,7 +254,7 @@
     #[test]
     fn test_table_builder() {
         let mut d = Vec::with_capacity(512);
-        let mut opt = Options::default();
+        let mut opt = BuildOptions::default();
         opt.block_restart_interval = 3;
         let mut b = TableBuilder::new(opt, StandardComparator, &mut d);
 
@@ -271,7 +271,7 @@
     #[should_panic]
     fn test_bad_input() {
         let mut d = Vec::with_capacity(512);
-        let mut opt = Options::default();
+        let mut opt = BuildOptions::default();
         opt.block_restart_interval = 3;
         let mut b = TableBuilder::new(opt, StandardComparator, &mut d);
 
--- a/src/table_reader.rs	Sun Nov 20 20:41:59 2016 +0100
+++ b/src/table_reader.rs	Mon Nov 21 19:26:37 2016 +0100
@@ -271,7 +271,7 @@
 
 #[cfg(test)]
 mod tests {
-    use options::Options;
+    use options::BuildOptions;
     use table_builder::TableBuilder;
     use iterator::{StandardComparator, SSIterator};
 
@@ -292,7 +292,7 @@
 
     fn build_table() -> (Vec<u8>, usize) {
         let mut d = Vec::with_capacity(512);
-        let mut opt = Options::default();
+        let mut opt = BuildOptions::default();
         opt.block_restart_interval = 2;
         opt.block_size = 32;