io_buffer/compress/mod.rs
1use std::io::Result;
2
3/// A trait for different compress method
4pub trait Compression {
5 /// Estimate the upper bound of buffer size needed
6 fn compress_bound(origin_len: usize) -> usize;
7
8 /// On success, return the size of compressed data.
9 ///
10 /// Arguments:
11 ///
12 /// * src: original data
13 ///
14 fn compress(src: &[u8], dest: &mut [u8]) -> Result<usize>;
15
16 /// On success, return the size of decompressed data.
17 ///
18 /// Arguments:
19 ///
20 /// * src: compressed data
21 ///
22 /// * dest: output buffer for decompressed data
23 fn decompress(src: &[u8], dest: &mut [u8]) -> Result<usize>;
24}
25
26#[cfg(any(feature = "lz4", doc))]
27/// Enabled with feature `lz4`
28pub mod lz4;