forked from mirrors/gecko-dev
		
	 a3a60fed58
			
		
	
	
		a3a60fed58
		
	
	
	
	
		
			
			Includes an upgrade to the miniz_oxide crate (not otherwise used) from 0.6.2 to 0.7.1. Differential Revision: https://phabricator.services.mozilla.com/D190837
		
			
				
	
	
		
			21 lines
		
	
	
	
		
			675 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
	
		
			675 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use flate2::write::GzEncoder;
 | |
| use flate2::{bufread, Compression};
 | |
| use std::io;
 | |
| use std::io::prelude::*;
 | |
| 
 | |
| // Compress a sample string and print it after transformation.
 | |
| fn main() {
 | |
|     let mut e = GzEncoder::new(Vec::new(), Compression::default());
 | |
|     e.write_all(b"Hello World").unwrap();
 | |
|     let bytes = e.finish().unwrap();
 | |
|     println!("{}", decode_reader(bytes).unwrap());
 | |
| }
 | |
| 
 | |
| // Uncompresses a Gz Encoded vector of bytes and returns a string or error
 | |
| // Here &[u8] implements BufRead
 | |
| fn decode_reader(bytes: Vec<u8>) -> io::Result<String> {
 | |
|     let mut gz = bufread::GzDecoder::new(&bytes[..]);
 | |
|     let mut s = String::new();
 | |
|     gz.read_to_string(&mut s)?;
 | |
|     Ok(s)
 | |
| }
 |