use core::fmt;
#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash, Ord, PartialOrd)]
#[repr(u8)]
#[non_exhaustive]
#[cfg_attr(
feature = "serde",
derive(serde_repr::Serialize_repr, serde_repr::Deserialize_repr)
)]
pub enum IndexMode {
Cell = 1,
DirectedEdge = 2,
UndirectedEdge = 3,
Vertex = 4,
}
impl From<IndexMode> for u8 {
fn from(value: IndexMode) -> Self {
value as Self
}
}
impl fmt::Display for IndexMode {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"{}",
match *self {
Self::Cell => "Cell",
Self::DirectedEdge => "DirectedEdge",
Self::UndirectedEdge => "UndirectedEdge",
Self::Vertex => "Vertex",
}
)
}
}