fix snap version, fix naming

This commit is contained in:
Pascal Seitz
2021-04-19 10:55:44 +02:00
parent b7159dd48e
commit c2fdc60569
2 changed files with 9 additions and 9 deletions

View File

@@ -23,7 +23,7 @@ memmap = {version = "0.7", optional=true}
lz4_flex = { version = "0.7", default-features = false, features = ["checked-decode"], optional=true }
lz4 = {version="1", optional=true}
brotli = {version="3.3.0", optional=true}
snap = {version="1.0", optional=true}
snap = {version="1", optional=true}
tempfile = {version="3", optional=true}
log = "0.4"
serde = {version="1", features=["derive"]}

View File

@@ -12,11 +12,8 @@ pub fn compress(uncompressed: &[u8], compressed: &mut Vec<u8>) -> io::Result<()>
compressed.extend_from_slice(&[0, 0, 0, 0]);
compress_into(uncompressed, compressed);
let size = uncompressed.len() as u32;
compressed[0] = size as u8;
compressed[1] = (size >> 8) as u8;
compressed[2] = (size >> 16) as u8;
compressed[3] = (size >> 24) as u8;
let num_bytes = uncompressed.len() as u32;
compressed[0..4].copy_from_slice(&num_bytes.to_le_bytes());
Ok(())
}
@@ -24,9 +21,12 @@ pub fn decompress(compressed: &[u8], decompressed: &mut Vec<u8>) -> io::Result<(
decompressed.clear();
//next lz4_flex version will support slice as input parameter.
//this will make the usage much less ugly
let size = compressed.get(..4).ok_or(io::ErrorKind::InvalidData)?;
let size: &[u8; 4] = size.try_into().unwrap();
let uncompressed_size = u32::from_le_bytes(*size) as usize;
let uncompressed_size_bytes: &[u8; 4] = compressed
.get(..4)
.ok_or(io::ErrorKind::InvalidData)?
.try_into()
.unwrap();
let uncompressed_size = u32::from_le_bytes(*uncompressed_size_bytes) as usize;
// reserve more than required, because blocked writes may write out of bounds, will be improved
// with lz4_flex 1.0
decompressed.reserve(uncompressed_size + 4 + 24);