use flac_codec::{
Error,
decode::{Verified, verify},
};
use std::path::PathBuf;
fn main() {
if cfg!(debug_assertions) {
eprintln!("WARNING: running in --release mode is preferred for best performance");
}
for (result, file) in verify_inputs(std::env::args_os().skip(1).map(PathBuf::from).collect()) {
display_result(file, result);
}
}
#[cfg(not(feature = "rayon"))]
fn verify_inputs(inputs: Vec<PathBuf>) -> Vec<(Result<Verified, Error>, PathBuf)> {
inputs.into_iter().map(|pb| (verify(&pb), pb)).collect()
}
#[cfg(feature = "rayon")]
fn verify_inputs(inputs: Vec<PathBuf>) -> Vec<(Result<Verified, Error>, PathBuf)> {
use rayon::iter::{IntoParallelIterator, ParallelIterator};
inputs.into_par_iter().map(|pb| (verify(&pb), pb)).collect()
}
fn display_result(file: PathBuf, result: Result<Verified, Error>) {
match result {
Ok(Verified::MD5Match) => println!("{}: ok", file.display()),
Ok(Verified::MD5Mismatch) => println!("{}: bad - MD5 mismatch", file.display()),
Ok(Verified::NoMD5) => println!("{}: ok - no MD5", file.display()),
Err(err) => println!("{}: error - {}", file.display(), err),
}
}