#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum VhdType {
Dynamic,
Fixed,
}
impl VhdType {
pub(crate) fn as_raw(self) -> wslc_sys::WslcVhdType {
match self {
Self::Dynamic => wslc_sys::WslcVhdType::WSLC_VHD_TYPE_DYNAMIC,
Self::Fixed => wslc_sys::WslcVhdType::WSLC_VHD_TYPE_FIXED,
}
}
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct VhdOptions {
pub name: String,
pub size_bytes: u64,
pub vhd_type: VhdType,
pub owner: Option<(u32, u32)>,
}
impl VhdOptions {
pub fn new(name: impl Into<String>, size_bytes: u64) -> Self {
Self {
name: name.into(),
size_bytes,
vhd_type: VhdType::Dynamic,
owner: None,
}
}
pub fn vhd_type(mut self, vhd_type: VhdType) -> Self {
self.vhd_type = vhd_type;
self
}
pub fn owner(mut self, uid: u32, gid: u32) -> Self {
self.owner = Some((uid, gid));
self
}
}