mod reader;
mod writer;
pub use reader::{EncoderReader, EncoderReaderParts};
pub use writer::{EncoderWriter, FinishError};
use super::dictionary::PreparedDictionary;
use super::encoder::Compressor;
use super::error::EncodeError;
use super::session::StreamConfig;
use std::io::{Read, Write};
impl Compressor {
pub fn writer<W: Write>(
&mut self,
writer: W,
stream: StreamConfig,
) -> Result<EncoderWriter<'_, 'static, W>, EncodeError> {
let session = self.start(stream)?;
Ok(EncoderWriter::new(session, writer))
}
pub fn writer_with_dictionary<'c, 'd, W: Write>(
&'c mut self,
dictionary: &'d PreparedDictionary,
writer: W,
stream: StreamConfig,
) -> Result<EncoderWriter<'c, 'd, W>, EncodeError> {
let session = self.start_with_dictionary(dictionary, stream)?;
Ok(EncoderWriter::new(session, writer))
}
pub fn reader<R: Read>(
&mut self,
reader: R,
stream: StreamConfig,
) -> Result<EncoderReader<'_, 'static, R>, EncodeError> {
let session = self.start(stream)?;
Ok(EncoderReader::new(session, reader))
}
pub fn reader_with_dictionary<'c, 'd, R: Read>(
&'c mut self,
dictionary: &'d PreparedDictionary,
reader: R,
stream: StreamConfig,
) -> Result<EncoderReader<'c, 'd, R>, EncodeError> {
let session = self.start_with_dictionary(dictionary, stream)?;
Ok(EncoderReader::new(session, reader))
}
}