use log::error;
use std::fmt::Display;
use vbox_raw::sys_lib as raw;
#[derive(Debug, Copy, Clone)]
pub enum DirectoryRemoveRecFlag {
None,
ContentAndDir,
ContentOnly,
}
impl From<u32> for DirectoryRemoveRecFlag {
fn from(value: u32) -> Self {
match value {
raw::DirectoryRemoveRecFlag_DirectoryRemoveRecFlag_None => DirectoryRemoveRecFlag::None,
raw::DirectoryRemoveRecFlag_DirectoryRemoveRecFlag_ContentAndDir => {
DirectoryRemoveRecFlag::ContentAndDir
}
raw::DirectoryRemoveRecFlag_DirectoryRemoveRecFlag_ContentOnly => {
DirectoryRemoveRecFlag::ContentOnly
}
_ => {
error!(
"Unknown DirectoryRemoveRecFlag. DirectoryRemoveRecFlag: {}",
value
);
DirectoryRemoveRecFlag::None
}
}
}
}
impl Into<u32> for DirectoryRemoveRecFlag {
fn into(self) -> u32 {
match self {
DirectoryRemoveRecFlag::None => raw::DirectoryRemoveRecFlag_DirectoryRemoveRecFlag_None,
DirectoryRemoveRecFlag::ContentAndDir => {
raw::DirectoryRemoveRecFlag_DirectoryRemoveRecFlag_ContentAndDir
}
DirectoryRemoveRecFlag::ContentOnly => {
raw::DirectoryRemoveRecFlag_DirectoryRemoveRecFlag_ContentOnly
}
}
}
}
impl Display for DirectoryRemoveRecFlag {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", format!("{:?}", self))
}
}