use crate::domain::{SourceUnit, Suppression};
pub trait SuppressionParser: Send + Sync {
fn parse(&self, unit: &SourceUnit) -> Result<Vec<Suppression>, SuppressionParseError>;
}
#[derive(Debug, thiserror::Error)]
pub enum SuppressionParseError {
#[error("malformed suppression at {file}:{line}: {message}")]
Malformed {
file: String,
line: usize,
message: String,
},
#[error("unknown dimension referenced at {file}:{line}: {dimension}")]
UnknownDimension {
file: String,
line: usize,
dimension: String,
},
}