parallel_processor/buckets/readers/
unbuffered_compressed_binary_reader.rs

1use crate::buckets::readers::generic_binary_reader::{ChunkDecoder, GenericChunkedBinaryReader};
2use crate::buckets::writers::compressed_binary_writer::COMPRESSED_BUCKET_MAGIC;
3use crate::memory_fs::file::reader::FileReader;
4
5pub struct UnbufferedCompressedStreamDecoder;
6
7impl ChunkDecoder for UnbufferedCompressedStreamDecoder {
8    const MAGIC_HEADER: &'static [u8; 16] = COMPRESSED_BUCKET_MAGIC;
9    type ReaderType = lz4::Decoder<FileReader>;
10
11    fn decode_stream(reader: FileReader, _size: u64) -> Self::ReaderType {
12        lz4::Decoder::new(reader).unwrap()
13    }
14
15    fn dispose_stream(stream: Self::ReaderType) -> FileReader {
16        let (file, result) = stream.finish();
17        result.unwrap();
18        file
19    }
20}
21
22pub type UnbufferedCompressedBinaryReader =
23    GenericChunkedBinaryReader<UnbufferedCompressedStreamDecoder>;