use std::fmt::Debug;
use crate::WSLUserConfiguration;
#[repr(transparent)]
pub struct WSLVmCreationSettings(wslpluginapi_sys::WSLVmCreationSettings);
impl From<wslpluginapi_sys::WSLVmCreationSettings> for WSLVmCreationSettings {
#[inline]
fn from(value: wslpluginapi_sys::WSLVmCreationSettings) -> Self {
Self(value)
}
}
impl From<WSLVmCreationSettings> for wslpluginapi_sys::WSLVmCreationSettings {
#[inline]
fn from(value: WSLVmCreationSettings) -> Self {
value.0
}
}
impl AsRef<wslpluginapi_sys::WSLVmCreationSettings> for WSLVmCreationSettings {
#[inline]
fn as_ref(&self) -> &wslpluginapi_sys::WSLVmCreationSettings {
&self.0
}
}
impl AsRef<WSLVmCreationSettings> for wslpluginapi_sys::WSLVmCreationSettings {
#[inline]
fn as_ref(&self) -> &WSLVmCreationSettings {
unsafe { &*std::ptr::from_ref::<Self>(self).cast::<WSLVmCreationSettings>() }
}
}
impl WSLVmCreationSettings {
#[must_use]
#[inline]
pub fn custom_configuration_flags(&self) -> WSLUserConfiguration {
WSLUserConfiguration::from(self.0.CustomConfigurationFlags)
}
}
impl Debug for WSLVmCreationSettings {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("WSLVmCreationSettings")
.field(
"customConfigurationFlags",
&self.custom_configuration_flags(),
)
.finish()
}
}
#[cfg(test)]
mod tests {
use crate::utils::test_transparence;
use super::WSLVmCreationSettings;
#[test]
fn test_layouts() {
test_transparence::<wslpluginapi_sys::WSLVmCreationSettings, WSLVmCreationSettings>();
}
}