use std::fmt;
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum TapType
{
None,
UnPriv,
Priv,
OldLog,
CustomLog,
LocalFile,
NetUdp,
NetTcp,
NetTls,
}
impl fmt::Display for TapType
{
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result
{
match self
{
Self::None =>
write!(f, "NO TYPE"),
Self::UnPriv =>
write!(f, "UNPRIV"),
Self::Priv =>
write!(f, "PRIV"),
Self::OldLog =>
write!(f, "OLD LOG"),
Self::CustomLog =>
write!(f, "CUSTOM LOG"),
Self::LocalFile =>
write!(f, "LOCAL FILE"),
Self::NetUdp =>
write!(f, "NET UDP"),
Self::NetTcp =>
write!(f, "NET TCP"),
Self::NetTls =>
write!(f, "NET TLS TCP")
}
}
}
impl TapType
{
pub(crate)
fn is_priv(&self) -> bool
{
return *self == Self::Priv;
}
pub(crate)
fn is_network(&self) -> bool
{
return *self == Self::NetTcp || *self == Self::NetUdp;
}
pub(crate)
fn is_file(&self) -> bool
{
return *self == Self::LocalFile;
}
}