diff --git a/src/data_structure.rs b/src/data_structure.rs index 51e2ea4..e45a5a4 100644 --- a/src/data_structure.rs +++ b/src/data_structure.rs @@ -69,7 +69,7 @@ pub struct GridIter<'a, ValueTy> { node_3: Option<&'a Node3>, } -impl<'a, ValueTy> Iterator for GridIter<'a, ValueTy> +impl Iterator for GridIter<'_, ValueTy> where ValueTy: Copy, { diff --git a/src/reader.rs b/src/reader.rs index c57c449..1db6a59 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -229,6 +229,9 @@ impl VdbReader { gd: &GridDescriptor, count: usize, ) -> Result, ParseError> { + if count == 0 { + return Ok(Vec::new()); + } Ok(if gd.compression.contains(Compression::BLOSC) { let num_compressed_bytes = reader.read_i64::()?; let compressed_count = num_compressed_bytes / std::mem::size_of::() as i64; @@ -276,7 +279,7 @@ impl VdbReader { "Skipping blosc decompression because of a {}-count read", count ); - vec![T::zeroed(); 0] + Vec::new() } } } else if gd.compression.contains(Compression::ZIP) {