cfun/
c_dc.rs

1#[cfg(feature = "dc")]
2use anyhow::Result;
3#[cfg(feature = "dc")]
4use std::io::Read;
5/// compress data with bzip2
6/// # example
7/// ```
8/// let data=std::fs::read("test.txt").unwrap();
9/// let v=cmpr_bzip2(&data);
10/// std::fs::write("test.bz",v).unwrap();
11/// ```
12#[cfg(feature = "dc")]
13pub fn bzip2_cmpr(data: &Vec<u8>) -> Result<Vec<u8>> {
14    let data: &[u8] = data;
15    let mut cmpr = bzip2::read::BzEncoder::new(data, bzip2::Compression::best());
16    let mut buf = Vec::new();
17    cmpr.read_to_end(&mut buf)?;
18    Ok(buf)
19}
20/// decompress data with bzip2
21/// # example
22/// ```
23/// let data=std::fs::read("te.bz").unwrap();
24/// let v=decmpr_bzip2(&data);
25/// let s=String::from_utf8(v).unwrap();
26/// println!("{}",s);
27/// ```
28#[cfg(feature = "dc")]
29pub fn bzip2_decmpr(data: &Vec<u8>) -> Result<Vec<u8>> {
30    let data: &[u8] = data;
31    let mut decoder = bzip2::read::BzDecoder::new(data);
32    let mut buf = Vec::new();
33    decoder.read_to_end(&mut buf)?;
34    Ok(buf)
35}