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
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			825 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			825 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use flate2::write::{GzDecoder, GzEncoder};
 | |
| use flate2::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_writer(bytes).unwrap());
 | |
| }
 | |
| 
 | |
| // Uncompresses a Gz Encoded vector of bytes and returns a string or error
 | |
| // Here &[u8] implements Read
 | |
| fn decode_writer(bytes: Vec<u8>) -> io::Result<String> {
 | |
|     let mut writer = Vec::new();
 | |
|     let mut decoder = GzDecoder::new(writer);
 | |
|     decoder.write_all(&bytes[..])?;
 | |
|     decoder.try_finish()?;
 | |
|     writer = decoder.finish()?;
 | |
|     let return_string = String::from_utf8(writer).expect("String parsing error");
 | |
|     Ok(return_string)
 | |
| }
 |