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}