use num_enum::IntoPrimitive;
use std::fmt;
#[derive(Clone, Copy, Debug, Eq, PartialEq, IntoPrimitive)]
#[non_exhaustive]
#[repr(i32)]
pub enum FsProperty {
BadChecksum = libblkid::BLKID_SUBLKS_BADCSUM,
Default = libblkid::BLKID_SUBLKS_DEFAULT,
Label = libblkid::BLKID_SUBLKS_LABEL,
LabelRaw = libblkid::BLKID_SUBLKS_LABELRAW,
Magic = libblkid::BLKID_SUBLKS_MAGIC,
SecondType = libblkid::BLKID_SUBLKS_SECTYPE,
Type = libblkid::BLKID_SUBLKS_TYPE,
Usage = libblkid::BLKID_SUBLKS_USAGE,
Uuid = libblkid::BLKID_SUBLKS_UUID,
UuidRaw = libblkid::BLKID_SUBLKS_UUIDRAW,
Version = libblkid::BLKID_SUBLKS_VERSION,
#[cfg(blkid = "v2_39")]
FsInfo = libblkid::BLKID_SUBLKS_FSINFO,
}
impl FsProperty {
pub fn as_str(&self) -> &str {
match self {
FsProperty::BadChecksum => "Bad checksum",
FsProperty::Default => "Default",
FsProperty::Label => "Label",
FsProperty::LabelRaw => "Label raw",
FsProperty::Magic => "Magic",
FsProperty::SecondType => "Second type",
FsProperty::Type => "Type",
FsProperty::Usage => "Usage",
FsProperty::Uuid => "UUID",
FsProperty::UuidRaw => "UUID raw",
FsProperty::Version => "Version",
#[cfg(blkid = "v2_39")]
FsProperty::FsInfo => "Fs Info",
}
}
}
impl fmt::Display for FsProperty {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.as_str())
}
}