forked from mirrors/gecko-dev
		
	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
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			839 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			839 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
use flate2::write::GzEncoder;
 | 
						|
use flate2::Compression;
 | 
						|
use std::env::args;
 | 
						|
use std::fs::File;
 | 
						|
use std::io::copy;
 | 
						|
use std::io::BufReader;
 | 
						|
use std::time::Instant;
 | 
						|
 | 
						|
fn main() {
 | 
						|
    if args().len() != 3 {
 | 
						|
        eprintln!("Usage: ./compress_file `source` `target`");
 | 
						|
        return;
 | 
						|
    }
 | 
						|
    let mut input = BufReader::new(File::open(args().nth(1).unwrap()).unwrap());
 | 
						|
    let output = File::create(args().nth(2).unwrap()).unwrap();
 | 
						|
    let mut encoder = GzEncoder::new(output, Compression::default());
 | 
						|
    let start = Instant::now();
 | 
						|
    copy(&mut input, &mut encoder).unwrap();
 | 
						|
    let output = encoder.finish().unwrap();
 | 
						|
    println!(
 | 
						|
        "Source len: {:?}",
 | 
						|
        input.get_ref().metadata().unwrap().len()
 | 
						|
    );
 | 
						|
    println!("Target len: {:?}", output.metadata().unwrap().len());
 | 
						|
    println!("Elapsed: {:?}", start.elapsed());
 | 
						|
}
 |