diff --git a/src/lib/rainbowutils.rs b/src/lib/rainbowutils.rs index 4b166b7..c6f345b 100644 --- a/src/lib/rainbowutils.rs +++ b/src/lib/rainbowutils.rs @@ -1,6 +1,5 @@ use byteorder::{BigEndian, ByteOrder}; use crc::crc32; -use rayon::prelude::*; use std::collections::HashMap; use std::convert::{TryFrom, TryInto}; use std::fs::File; @@ -300,12 +299,8 @@ impl GenericChunk { lookup_table: &HashLookupTable, ) -> GenericChunk { let mut serialized_data: Vec = Vec::new(); - let serialized_entries: Vec> = entries - .par_iter() - .map(|entry: &DataEntry| entry.serialize(lookup_table.clone())) - .collect(); - serialized_entries.iter().for_each(|entry| { - serialized_data.append(&mut entry.clone()); + entries.iter().for_each(|entry| { + serialized_data.append(&mut entry.serialize(&lookup_table)); }); let crc_sum = crc32::checksum_ieee(serialized_data.as_slice()); @@ -562,7 +557,7 @@ impl DataEntry { } /// Serializes the entry to a vector of bytes - pub fn serialize(&self, lookup_table: HashLookupTable) -> Vec { + pub fn serialize(&self, lookup_table: &HashLookupTable) -> Vec { let mut pw_plain_raw = self.plain.clone().into_bytes(); let mut pw_length_raw = [0u8; 4]; BigEndian::write_u32(&mut pw_length_raw, pw_plain_raw.len() as u32); diff --git a/src/main.rs b/src/main.rs index 2e8593e..a178495 100644 --- a/src/main.rs +++ b/src/main.rs @@ -162,6 +162,7 @@ fn decrypt(_opts: &Opts, args: &Decrypt) { const SHA256: &str = "sha256"; /// Creates a dictionary from an input file and writes it to the output file fn create_dictionary(_opts: &Opts, args: &CreateDictionary) { + let sp = spinner("Reading input file..."); let input: String = (*args.input).parse().unwrap(); // TODO: Some form of removing duplicates (without itertools) let fout = File::create(args.output.clone()).unwrap(); @@ -171,9 +172,10 @@ fn create_dictionary(_opts: &Opts, args: &CreateDictionary) { let content = fs::read_to_string(input).expect("Failed to read content"); let lines = content.par_lines(); let entry_count = lines.clone().count() as u64; + sp.stop(); let mut pb = ProgressBar::new(entry_count); pb.set_max_refresh_rate(Some(Duration::from_millis(200))); - let (rx, tx) = sync_channel::(100_000_000); + let (rx, tx) = sync_channel::(100_000); let mut bdf_file = BDFWriter::new(writer, entry_count, args.compress); bdf_file .add_lookup_entry(HashEntry::new(SHA256.to_string(), 32))