use crate::mechanism::{Kind, Mechanism, Qualifier};
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use std::fmt::{Display, Formatter};
#[derive(Debug, PartialEq, Clone)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct All;
impl Default for Mechanism<All> {
fn default() -> Self {
Self {
kind: Kind::All,
qualifier: Qualifier::Fail,
rrdata: None,
}
}
}
impl Mechanism<All> {
pub fn all() -> Self {
Self::default()
}
pub fn all_with_qualifier(qualifier: Qualifier) -> Self {
Self {
kind: Kind::All,
qualifier,
rrdata: None,
}
}
pub fn raw(&self) -> String {
self.kind().to_string()
}
}
impl Display for Mechanism<All> {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", format!("{}all", self.qualifier))
}
}