use log::error;
use std::fmt::Display;
use vbox_raw::sys_lib as raw;
#[derive(Debug, Eq, PartialEq)]
pub enum VMProcPriority {
Invalid,
Default,
Flat,
Low,
Normal,
High,
}
impl Into<u32> for VMProcPriority {
fn into(self) -> u32 {
match self {
VMProcPriority::Default => raw::VMProcPriority_VMProcPriority_Default,
VMProcPriority::Flat => raw::VMProcPriority_VMProcPriority_Flat,
VMProcPriority::Low => raw::VMProcPriority_VMProcPriority_Low,
VMProcPriority::Normal => raw::VMProcPriority_VMProcPriority_Normal,
VMProcPriority::High => raw::VMProcPriority_VMProcPriority_High,
_ => raw::VMProcPriority_VMProcPriority_Invalid,
}
}
}
impl From<u32> for VMProcPriority {
fn from(value: u32) -> Self {
match value {
raw::VMProcPriority_VMProcPriority_Invalid => VMProcPriority::Invalid,
raw::VMProcPriority_VMProcPriority_Default => VMProcPriority::Default,
raw::VMProcPriority_VMProcPriority_Flat => VMProcPriority::Flat,
raw::VMProcPriority_VMProcPriority_Low => VMProcPriority::Low,
raw::VMProcPriority_VMProcPriority_Normal => VMProcPriority::Normal,
raw::VMProcPriority_VMProcPriority_High => VMProcPriority::High,
_ => {
error!("VMProcPriority::from. Unknown type: {}", value);
VMProcPriority::Invalid
}
}
}
}
impl Display for VMProcPriority {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", format!("{:?}", self))
}
}