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