1 use flate2::write::GzEncoder; 2 use flate2::{read, Compression}; 3 use std::io; 4 use std::io::prelude::*; 5 6 // Compress a sample string and print it after transformation. main()7fn main() { 8 let mut e = GzEncoder::new(Vec::new(), Compression::default()); 9 e.write_all(b"Hello World").unwrap(); 10 let bytes = e.finish().unwrap(); 11 println!("{}", decode_reader(bytes).unwrap()); 12 } 13 14 // Uncompresses a Gz Encoded vector of bytes and returns a string or error 15 // Here &[u8] implements Read decode_reader(bytes: Vec<u8>) -> io::Result<String>16fn decode_reader(bytes: Vec<u8>) -> io::Result<String> { 17 let mut gz = read::GzDecoder::new(&bytes[..]); 18 let mut s = String::new(); 19 gz.read_to_string(&mut s)?; 20 Ok(s) 21 } 22