parallel-processor 0.2.3

Framework to manage asynchronous execution of multiple compute units communicating using messages
Documentation
use crate::buckets::readers::binary_reader::ChunkDecoder;
use crate::buckets::writers::lock_free_binary_writer::LOCK_FREE_BUCKET_MAGIC;
use crate::memory_fs::file::reader::FileReader;
use std::io::{Read, Take};

pub struct LockFreeStreamDecoder;

impl ChunkDecoder for LockFreeStreamDecoder {
    const MAGIC_HEADER: &'static [u8; 16] = LOCK_FREE_BUCKET_MAGIC;
    type ReaderType = Take<FileReader>;

    fn decode_stream(reader: FileReader, size: u64) -> Self::ReaderType {
        reader.take(size)
    }

    fn dispose_stream(stream: Self::ReaderType) -> FileReader {
        stream.into_inner()
    }
}