#![deny(unsafe_code)]
#![allow(
clippy::must_use_candidate,
clippy::missing_panics_doc,
clippy::missing_errors_doc,
clippy::module_name_repetitions,
clippy::similar_names,
clippy::too_many_lines,
clippy::too_many_arguments,
clippy::struct_excessive_bools
)]
use std::path::Path;
fn is_path_with_extension<P: AsRef<Path>>(p: &P, extensions: [&str; 2]) -> bool {
if let Some(ext) = p.as_ref().extension() {
match ext.to_str() {
Some(x) => extensions.contains(&x),
None => false,
}
} else {
false
}
}
const GZIP_EXTENSIONS: [&str; 2] = ["gz", "bgz"];
pub fn is_gzip_path<P: AsRef<Path>>(p: &P) -> bool {
is_path_with_extension(p, GZIP_EXTENSIONS)
}
const FASTQ_EXTENSIONS: [&str; 2] = ["fastq", "fq"];
pub fn is_fastq_path<P: AsRef<Path>>(p: &P) -> bool {
is_path_with_extension(p, FASTQ_EXTENSIONS)
}