use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Suppression {
pub channel: Channel,
pub reason: Option<String>,
pub tag: Option<String>,
pub line: Option<usize>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum Channel {
Comment,
Attribute,
Config,
}
impl Channel {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Comment => "comment",
Self::Attribute => "attribute",
Self::Config => "config",
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn every_suppression_channel_has_the_short_name_used_in_output() {
assert_eq!(Channel::Comment.as_str(), "comment");
assert_eq!(Channel::Attribute.as_str(), "attribute");
assert_eq!(Channel::Config.as_str(), "config");
}
}