1 use std::env; 2 use std::fs::File; 3 use std::hash::Hasher; 4 use std::io::{BufRead, BufReader}; 5 use twox_hash::XxHash64; 6 main()7fn main() { 8 for arg in env::args().skip(1) { 9 let f = File::open(&arg).unwrap(); 10 let mut f = BufReader::new(f); 11 12 let mut hasher = XxHash64::with_seed(0); 13 14 loop { 15 let consumed = { 16 let bytes = f.fill_buf().unwrap(); 17 if bytes.is_empty() { 18 break; 19 } 20 hasher.write(bytes); 21 bytes.len() 22 }; 23 f.consume(consumed); 24 } 25 26 println!("{:16x} {}", hasher.finish(), arg); 27 } 28 } 29