]> git.proxmox.com Git - rustc.git/blame - vendor/flate2/examples/gzdecoder-read.rs
New upstream version 1.32.0~beta.2+dfsg1
[rustc.git] / vendor / flate2 / examples / gzdecoder-read.rs
CommitLineData
ea8adc8c
XL
1extern crate flate2;
2
3use std::io::prelude::*;
4use std::io;
5use flate2::Compression;
6use flate2::write::GzEncoder;
7use flate2::read::GzDecoder;
8
9// Compress a sample string and print it after transformation.
10fn main() {
ff7c6d11 11 let mut e = GzEncoder::new(Vec::new(), Compression::default());
b7449926 12 e.write_all(b"Hello World").unwrap();
ea8adc8c
XL
13 let bytes = e.finish().unwrap();
14 println!("{}", decode_reader(bytes).unwrap());
15}
16
17// Uncompresses a Gz Encoded vector of bytes and returns a string or error
18// Here &[u8] implements Read
19fn decode_reader(bytes: Vec<u8>) -> io::Result<String> {
ff7c6d11 20 let mut gz = GzDecoder::new(&bytes[..]);
ea8adc8c
XL
21 let mut s = String::new();
22 gz.read_to_string(&mut s)?;
23 Ok(s)
24}