use log::error;
use std::fmt::Display;
use vbox_raw::sys_lib as raw;
#[derive(Debug)]
pub enum PathStyle {
DOS,
UNIX,
Unknown,
}
impl From<u32> for PathStyle {
fn from(value: u32) -> Self {
match value {
raw::PathStyle_PathStyle_DOS => PathStyle::DOS,
raw::PathStyle_PathStyle_UNIX => PathStyle::UNIX,
raw::PathStyle_PathStyle_Unknown => PathStyle::Unknown,
_ => {
error!("Unknown PathStyle. PathStyle: {}", value);
PathStyle::Unknown
}
}
}
}
impl Into<u32> for PathStyle {
fn into(self) -> u32 {
match self {
PathStyle::DOS => raw::PathStyle_PathStyle_DOS,
PathStyle::UNIX => raw::PathStyle_PathStyle_UNIX,
PathStyle::Unknown => raw::PathStyle_PathStyle_Unknown,
}
}
}
impl Display for PathStyle {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", format!("{:?}", self))
}
}