mod reader;
mod writer;
pub use reader::ParallelEncoderReader;
pub use writer::ParallelEncoderWriter;
use std::io::{Read, Write};
use super::{ParallelCompressor, ParallelTaskQueue, TaskCount};
use crate::compressor::session::StreamConfig;
impl ParallelCompressor {
pub fn writer<W: Write>(
&mut self,
sink: W,
stream: StreamConfig,
window: TaskCount,
) -> (ParallelEncoderWriter<'_, W>, ParallelTaskQueue) {
let (session, queue) = self.start(stream, window);
(ParallelEncoderWriter::new(session, sink), queue)
}
pub fn reader<R: Read>(
&mut self,
source: R,
stream: StreamConfig,
window: TaskCount,
) -> (ParallelEncoderReader<'_, R>, ParallelTaskQueue) {
let (session, queue) = self.start(stream, window);
(ParallelEncoderReader::new(session, source), queue)
}
}