use std::fs;
use std::path::Path;
use crate::{MimeError, MimeResult};
#[derive(Debug, Clone, Copy, Default)]
pub struct AbstractMediaStreamClassifier;
impl AbstractMediaStreamClassifier {
pub fn validate_readable_file(path: &Path) -> MimeResult<()> {
let metadata = fs::metadata(path)?;
if metadata.is_file() {
Ok(())
} else {
Err(MimeError::invalid_classifier_input(format!(
"path is not a regular file: {}",
path.display()
)))
}
}
}
#[cfg(coverage)]
pub(crate) mod coverage_support {
use std::path::Path;
use super::AbstractMediaStreamClassifier;
pub(crate) fn exercise_abstract_classifier_edges() -> Vec<String> {
let valid = AbstractMediaStreamClassifier::validate_readable_file(Path::new("Cargo.toml"))
.is_ok()
.to_string();
let invalid = AbstractMediaStreamClassifier::validate_readable_file(Path::new("."))
.expect_err("directory should not validate")
.to_string();
vec![valid, invalid]
}
}