lib.rs 527 B

123456789101112131415161718192021
  1. extern crate crypto_hash;
  2. extern crate memmap;
  3. extern crate rayon;
  4. use crypto_hash::{hex_digest, Algorithm};
  5. use memmap::MmapOptions;
  6. use rayon::prelude::*;
  7. use std::fs::File;
  8. pub fn rainbow(infile: &File, quiet: bool) {
  9. let mmap = unsafe { MmapOptions::new().map(&infile).unwrap() };
  10. mmap.par_split(|c| *c == '\n' as u8)
  11. .map(|coso| {
  12. let hash = hex_digest(Algorithm::MD5, coso);
  13. if !quiet {
  14. println!("{}", hash);
  15. }
  16. })
  17. .collect::<()>();
  18. }