changeset 514:3c8a8285f0cb

Update crc and snappy dependencies
author Lewin Bormann <lbo@spheniscida.de>
date Wed, 19 Feb 2020 16:23:38 +0100
parents 4af7baa18cf0
children 4c54943d52e3
files Cargo.toml src/table_block.rs src/table_builder.rs src/table_reader.rs
diffstat 4 files changed, 16 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/Cargo.toml	Wed Feb 19 16:04:34 2020 +0100
+++ b/Cargo.toml	Wed Feb 19 16:23:38 2020 +0100
@@ -11,11 +11,11 @@
 publish = true
 
 [dependencies]
-crc = "1.8"
+crc = "1.0"
 integer-encoding = "1.0"
 libc = "0.2"
 rand = "0.7"
-snap = "0.2"
+snap = "1.0"
 errno = "0.2"
 
 [dev-dependencies]
--- a/src/table_block.rs	Wed Feb 19 16:04:34 2020 +0100
+++ b/src/table_block.rs	Wed Feb 19 16:23:38 2020 +0100
@@ -10,7 +10,8 @@
 
 use crc::crc32::{self, Hasher32};
 use integer_encoding::FixedInt;
-use snap::Decoder;
+use snap::read::FrameDecoder;
+use std::io::Read;
 
 /// Reads the data for the specified block handle from a file.
 fn read_bytes(f: &dyn RandomAccess, location: &BlockHandle) -> Result<Vec<u8>> {
@@ -75,7 +76,8 @@
         match ctype {
             CompressionType::CompressionNone => Ok(Block::new(opt, buf)),
             CompressionType::CompressionSnappy => {
-                let decoded = Decoder::new().decompress_vec(&buf)?;
+                let mut decoded = vec![];
+                FrameDecoder::new(buf.as_slice()).read_to_end(&mut decoded)?;
                 Ok(Block::new(opt, decoded))
             }
         }
--- a/src/table_builder.rs	Wed Feb 19 16:04:34 2020 +0100
+++ b/src/table_builder.rs	Wed Feb 19 16:23:38 2020 +0100
@@ -16,7 +16,7 @@
 use crc::crc32;
 use crc::Hasher32;
 use integer_encoding::FixedIntWriter;
-use snap::Encoder;
+use snap::write::FrameEncoder;
 
 pub const FOOTER_LENGTH: usize = 40;
 pub const FULL_FOOTER_LENGTH: usize = FOOTER_LENGTH + 8;
@@ -202,8 +202,12 @@
     fn write_block(&mut self, block: BlockContents, ctype: CompressionType) -> Result<BlockHandle> {
         let mut data = block;
         if ctype == CompressionType::CompressionSnappy {
-            let mut encoder = Encoder::new();
-            data = encoder.compress_vec(&data)?;
+            let mut encoded = vec![];
+            {
+                let mut encoder = FrameEncoder::new(&mut encoded);
+                encoder.write(&data)?;
+            }
+            data = encoded;
         }
 
         let mut digest = crc32::Digest::new(crc32::CASTAGNOLI);
@@ -322,7 +326,7 @@
         assert!(b.filter_block.is_some());
 
         let actual = b.finish().unwrap();
-        assert_eq!(223, actual);
+        assert_eq!(275, actual);
     }
 
     #[test]
--- a/src/table_reader.rs	Wed Feb 19 16:04:34 2020 +0100
+++ b/src/table_reader.rs	Wed Feb 19 16:23:38 2020 +0100
@@ -445,7 +445,7 @@
         let table = Table::new_raw(opt, wrap_buffer(src), size).unwrap();
         let mut iter = table.iter();
 
-        let expected_offsets = vec![0, 0, 0, 44, 44, 44, 89];
+        let expected_offsets = vec![0, 0, 0, 60, 60, 60, 122];
         let mut i = 0;
         for (k, _) in LdbIteratorIter::wrap(&mut iter) {
             assert_eq!(expected_offsets[i], table.approx_offset_of(&k));
@@ -453,7 +453,7 @@
         }
 
         // Key-past-last returns offset of metaindex block.
-        assert_eq!(137, table.approx_offset_of("{aa".as_bytes()));
+        assert_eq!(186, table.approx_offset_of("{aa".as_bytes()));
     }
 
     #[test]