diff --git a/src/main.rs b/src/main.rs index 0b103a1..a7083fe 100644 --- a/src/main.rs +++ b/src/main.rs @@ -55,24 +55,21 @@ fn main() -> XResult<()> { return Ok(()); } - let the_algo = options.algorithm.to_uppercase(); + let the_algo: &str = &options.algorithm.to_uppercase(); if options.file_name_list.is_empty() { - let boxed_digest = get_digest_by_algorithm(the_algo.as_str(), &options); - match boxed_digest { + match get_digest_by_algorithm(the_algo, &options) { Some(mut digest) => println!("{} - ({})", calc_digest_stdin(&mut *digest)?, the_algo), - None => match the_algo.as_str() { + None => match the_algo { "SM3" => println!("{} - ({})", hex::encode(Sm3Hash::new(&read_full_stdin()?).get_hash()), the_algo), _ => print_message(MessageType::ERROR, &format!("Unknown algorithm: {}", options.algorithm)), }, }; } else { - for f in &options.file_name_list { - let the_fn = f.as_str(); - let boxed_digest = get_digest_by_algorithm(the_algo.as_str(), &options); - match boxed_digest { - Some(mut digest) => println!("{} - {} ({})", calc_file_digest(&mut *digest, the_fn)?, the_fn, the_algo), - None => match the_algo.as_str() { - "SM3" => println!("{} - {} ({})", hex::encode(Sm3Hash::new(&read_file_full(the_fn)?).get_hash()), the_fn, the_algo), + for file in &options.file_name_list { + match get_digest_by_algorithm(the_algo, &options) { + Some(mut digest) => println!("{} - {} ({})", calc_file_digest(&mut *digest, file)?, file, the_algo), + None => match the_algo { + "SM3" => println!("{} - {} ({})", hex::encode(Sm3Hash::new(&read_file_full(file)?).get_hash()), file, the_algo), _ => { print_message(MessageType::ERROR, &format!("Unknown algorithm: {}", options.algorithm)); return Ok(());