use std::fmt;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum DeliveryExpiryCause {
Timeout,
CeremonyEnded,
TargetRevoked,
QueueOverflow,
}
impl DeliveryExpiryCause {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Timeout => "timeout",
Self::CeremonyEnded => "ceremony_ended",
Self::TargetRevoked => "target_revoked",
Self::QueueOverflow => "queue_overflow",
}
}
}
impl fmt::Display for DeliveryExpiryCause {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
formatter.write_str(self.as_str())
}
}