use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum NnsTopologyAssessmentStatus {
Ok,
Attention,
}
impl NnsTopologyAssessmentStatus {
#[cfg(feature = "nns-host")]
pub(crate) const fn from_ok(is_ok: bool) -> Self {
if is_ok { Self::Ok } else { Self::Attention }
}
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Ok => "ok",
Self::Attention => "attention",
}
}
}
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum NnsTopologyCapacityStatus {
Over,
Unknown,
Full,
Available,
}
impl NnsTopologyCapacityStatus {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Over => "over",
Self::Unknown => "unknown",
Self::Full => "full",
Self::Available => "available",
}
}
#[cfg(feature = "nns-host")]
pub(crate) const fn sort_rank(self) -> u8 {
match self {
Self::Over => 0,
Self::Unknown => 1,
Self::Full => 2,
Self::Available => 3,
}
}
}
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum NnsTopologyProviderStatus {
UnknownProvider,
Over,
Unused,
Ok,
}
impl NnsTopologyProviderStatus {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::UnknownProvider => "unknown_provider",
Self::Over => "over",
Self::Unused => "unused",
Self::Ok => "ok",
}
}
#[cfg(feature = "nns-host")]
pub(crate) const fn sort_rank(self) -> u8 {
match self {
Self::UnknownProvider => 0,
Self::Over => 1,
Self::Unused => 2,
Self::Ok => 3,
}
}
}
#[cfg(test)]
mod tests;