#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Deserialize, Serialize)]
#[derive(EnumDiscriminants)]
#[strum_discriminants(name(ModuleParameterValueKind))]
#[strum_discriminants(derive(PartialOrd))]
#[strum_discriminants(derive(Ord))]
#[strum_discriminants(derive(Hash))]
#[strum_discriminants(derive(Deserialize))]
#[strum_discriminants(derive(Serialize))]
pub enum ModuleParameterValueChoice
{
byte(u8),
short(i16),
ushort(u16),
int(i32),
uint(u32),
long(isize),
ulong(usize),
ullong(u64),
charp(StringLinuxKernelModuleParameterValue),
bool(bool),
invbool(InverseBooleanModuleParameterValue),
intel_ixgbevf_debug_level(IntelIxgbevfDebugLevelModuleParameterValue),
}
impl ModuleParameterValueChoice
{
#[inline(always)]
pub fn write(&self, sys_path: &SysPath, module_name: &LinuxKernelModuleName, parameter_name: &CStr) -> io::Result<()>
{
use self::ModuleParameterValueChoice::*;
match self
{
byte(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
short(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
ushort(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
int(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
uint(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
long(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
ulong(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
ullong(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
charp(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
bool(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
invbool(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
intel_ixgbevf_debug_level(module_parameter_value) => module_parameter_value.write_linux_module_parameter(sys_path, module_name, parameter_name),
}
}
}