async_compression/codec/xz/
encoder.rs

1use crate::{codec::Encode, util::PartialBuffer};
2
3use std::io::Result;
4
5#[derive(Debug)]
6pub struct XzEncoder {
7    inner: crate::codec::Xz2Encoder,
8}
9
10impl XzEncoder {
11    pub fn new(level: u32) -> Self {
12        Self {
13            inner: crate::codec::Xz2Encoder::new(crate::codec::Xz2FileFormat::Xz, level),
14        }
15    }
16}
17
18impl Encode for XzEncoder {
19    fn encode(
20        &mut self,
21        input: &mut PartialBuffer<impl AsRef<[u8]>>,
22        output: &mut PartialBuffer<impl AsRef<[u8]> + AsMut<[u8]>>,
23    ) -> Result<()> {
24        self.inner.encode(input, output)
25    }
26
27    fn flush(
28        &mut self,
29        output: &mut PartialBuffer<impl AsRef<[u8]> + AsMut<[u8]>>,
30    ) -> Result<bool> {
31        self.inner.flush(output)
32    }
33
34    fn finish(
35        &mut self,
36        output: &mut PartialBuffer<impl AsRef<[u8]> + AsMut<[u8]>>,
37    ) -> Result<bool> {
38        self.inner.finish(output)
39    }
40}