#[derive(Debug)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Model704 {
pub pfw_inj_ena: Option<PfwInjEna>,
pub pfw_inj_ena_rvrt: Option<PfwInjEnaRvrt>,
pub pfw_inj_rvrt_tms: Option<u32>,
pub pfw_inj_rvrt_rem: Option<u32>,
pub pfw_abs_ena: Option<PfwAbsEna>,
pub pfw_abs_ena_rvrt: Option<PfwAbsEnaRvrt>,
pub pfw_abs_rvrt_tms: Option<u32>,
pub pfw_abs_rvrt_rem: Option<u32>,
pub w_max_lim_pct_ena: Option<WMaxLimPctEna>,
pub w_max_lim_pct: Option<u16>,
pub w_max_lim_pct_rvrt: Option<u16>,
pub w_max_lim_pct_ena_rvrt: Option<WMaxLimPctEnaRvrt>,
pub w_max_lim_pct_rvrt_tms: Option<u32>,
pub w_max_lim_pct_rvrt_rem: Option<u32>,
pub w_set_ena: Option<WSetEna>,
pub w_set_mod: Option<WSetMod>,
pub w_set: Option<i32>,
pub w_set_rvrt: Option<i32>,
pub w_set_pct: Option<i16>,
pub w_set_pct_rvrt: Option<i16>,
pub w_set_ena_rvrt: Option<WSetEnaRvrt>,
pub w_set_rvrt_tms: Option<u32>,
pub w_set_rvrt_rem: Option<u32>,
pub var_set_ena: Option<VarSetEna>,
pub var_set_mod: Option<VarSetMod>,
pub var_set_pri: Option<VarSetPri>,
pub var_set: Option<i32>,
pub var_set_rvrt: Option<i32>,
pub var_set_pct: Option<i16>,
pub var_set_pct_rvrt: Option<i16>,
pub var_set_ena_rvrt: Option<VarSetEnaRvrt>,
pub var_set_rvrt_tms: Option<u32>,
pub var_set_rvrt_rem: Option<u32>,
pub w_rmp: Option<u16>,
pub w_rmp_ref: Option<WRmpRef>,
pub var_rmp: Option<u16>,
pub anti_isl_ena: Option<AntiIslEna>,
pub pf_sf: Option<i16>,
pub w_max_lim_pct_sf: Option<i16>,
pub w_set_sf: Option<i16>,
pub w_set_pct_sf: Option<i16>,
pub var_set_sf: Option<i16>,
pub var_set_pct_sf: Option<i16>,
}
#[allow(missing_docs)]
impl Model704 {
pub const PFW_INJ_ENA: crate::Point<Self, Option<PfwInjEna>> = crate::Point::new(0, 1, true);
pub const PFW_INJ_ENA_RVRT: crate::Point<Self, Option<PfwInjEnaRvrt>> =
crate::Point::new(1, 1, true);
pub const PFW_INJ_RVRT_TMS: crate::Point<Self, Option<u32>> = crate::Point::new(2, 2, true);
pub const PFW_INJ_RVRT_REM: crate::Point<Self, Option<u32>> = crate::Point::new(4, 2, false);
pub const PFW_ABS_ENA: crate::Point<Self, Option<PfwAbsEna>> = crate::Point::new(6, 1, true);
pub const PFW_ABS_ENA_RVRT: crate::Point<Self, Option<PfwAbsEnaRvrt>> =
crate::Point::new(7, 1, true);
pub const PFW_ABS_RVRT_TMS: crate::Point<Self, Option<u32>> = crate::Point::new(8, 2, true);
pub const PFW_ABS_RVRT_REM: crate::Point<Self, Option<u32>> = crate::Point::new(10, 2, false);
pub const W_MAX_LIM_PCT_ENA: crate::Point<Self, Option<WMaxLimPctEna>> =
crate::Point::new(12, 1, true);
pub const W_MAX_LIM_PCT: crate::Point<Self, Option<u16>> = crate::Point::new(13, 1, true);
pub const W_MAX_LIM_PCT_RVRT: crate::Point<Self, Option<u16>> = crate::Point::new(14, 1, true);
pub const W_MAX_LIM_PCT_ENA_RVRT: crate::Point<Self, Option<WMaxLimPctEnaRvrt>> =
crate::Point::new(15, 1, true);
pub const W_MAX_LIM_PCT_RVRT_TMS: crate::Point<Self, Option<u32>> =
crate::Point::new(16, 2, true);
pub const W_MAX_LIM_PCT_RVRT_REM: crate::Point<Self, Option<u32>> =
crate::Point::new(18, 2, false);
pub const W_SET_ENA: crate::Point<Self, Option<WSetEna>> = crate::Point::new(20, 1, true);
pub const W_SET_MOD: crate::Point<Self, Option<WSetMod>> = crate::Point::new(21, 1, true);
pub const W_SET: crate::Point<Self, Option<i32>> = crate::Point::new(22, 2, true);
pub const W_SET_RVRT: crate::Point<Self, Option<i32>> = crate::Point::new(24, 2, true);
pub const W_SET_PCT: crate::Point<Self, Option<i16>> = crate::Point::new(26, 1, true);
pub const W_SET_PCT_RVRT: crate::Point<Self, Option<i16>> = crate::Point::new(27, 1, true);
pub const W_SET_ENA_RVRT: crate::Point<Self, Option<WSetEnaRvrt>> =
crate::Point::new(28, 1, true);
pub const W_SET_RVRT_TMS: crate::Point<Self, Option<u32>> = crate::Point::new(29, 2, true);
pub const W_SET_RVRT_REM: crate::Point<Self, Option<u32>> = crate::Point::new(31, 2, false);
pub const VAR_SET_ENA: crate::Point<Self, Option<VarSetEna>> = crate::Point::new(33, 1, true);
pub const VAR_SET_MOD: crate::Point<Self, Option<VarSetMod>> = crate::Point::new(34, 1, true);
pub const VAR_SET_PRI: crate::Point<Self, Option<VarSetPri>> = crate::Point::new(35, 1, true);
pub const VAR_SET: crate::Point<Self, Option<i32>> = crate::Point::new(36, 2, true);
pub const VAR_SET_RVRT: crate::Point<Self, Option<i32>> = crate::Point::new(38, 2, true);
pub const VAR_SET_PCT: crate::Point<Self, Option<i16>> = crate::Point::new(40, 1, true);
pub const VAR_SET_PCT_RVRT: crate::Point<Self, Option<i16>> = crate::Point::new(41, 1, true);
pub const VAR_SET_ENA_RVRT: crate::Point<Self, Option<VarSetEnaRvrt>> =
crate::Point::new(42, 1, true);
pub const VAR_SET_RVRT_TMS: crate::Point<Self, Option<u32>> = crate::Point::new(43, 2, true);
pub const VAR_SET_RVRT_REM: crate::Point<Self, Option<u32>> = crate::Point::new(45, 2, false);
pub const W_RMP: crate::Point<Self, Option<u16>> = crate::Point::new(47, 1, true);
pub const W_RMP_REF: crate::Point<Self, Option<WRmpRef>> = crate::Point::new(48, 1, true);
pub const VAR_RMP: crate::Point<Self, Option<u16>> = crate::Point::new(49, 1, true);
pub const ANTI_ISL_ENA: crate::Point<Self, Option<AntiIslEna>> = crate::Point::new(50, 1, true);
pub const PF_SF: crate::Point<Self, Option<i16>> = crate::Point::new(51, 1, false);
pub const W_MAX_LIM_PCT_SF: crate::Point<Self, Option<i16>> = crate::Point::new(52, 1, false);
pub const W_SET_SF: crate::Point<Self, Option<i16>> = crate::Point::new(53, 1, false);
pub const W_SET_PCT_SF: crate::Point<Self, Option<i16>> = crate::Point::new(54, 1, false);
pub const VAR_SET_SF: crate::Point<Self, Option<i16>> = crate::Point::new(55, 1, false);
pub const VAR_SET_PCT_SF: crate::Point<Self, Option<i16>> = crate::Point::new(56, 1, false);
}
impl crate::Model for Model704 {
const ID: u16 = 704;
fn from_data(data: &[u16]) -> Result<Self, crate::DecodeError> {
Ok(Self {
pfw_inj_ena: Self::PFW_INJ_ENA.from_data(data)?,
pfw_inj_ena_rvrt: Self::PFW_INJ_ENA_RVRT.from_data(data)?,
pfw_inj_rvrt_tms: Self::PFW_INJ_RVRT_TMS.from_data(data)?,
pfw_inj_rvrt_rem: Self::PFW_INJ_RVRT_REM.from_data(data)?,
pfw_abs_ena: Self::PFW_ABS_ENA.from_data(data)?,
pfw_abs_ena_rvrt: Self::PFW_ABS_ENA_RVRT.from_data(data)?,
pfw_abs_rvrt_tms: Self::PFW_ABS_RVRT_TMS.from_data(data)?,
pfw_abs_rvrt_rem: Self::PFW_ABS_RVRT_REM.from_data(data)?,
w_max_lim_pct_ena: Self::W_MAX_LIM_PCT_ENA.from_data(data)?,
w_max_lim_pct: Self::W_MAX_LIM_PCT.from_data(data)?,
w_max_lim_pct_rvrt: Self::W_MAX_LIM_PCT_RVRT.from_data(data)?,
w_max_lim_pct_ena_rvrt: Self::W_MAX_LIM_PCT_ENA_RVRT.from_data(data)?,
w_max_lim_pct_rvrt_tms: Self::W_MAX_LIM_PCT_RVRT_TMS.from_data(data)?,
w_max_lim_pct_rvrt_rem: Self::W_MAX_LIM_PCT_RVRT_REM.from_data(data)?,
w_set_ena: Self::W_SET_ENA.from_data(data)?,
w_set_mod: Self::W_SET_MOD.from_data(data)?,
w_set: Self::W_SET.from_data(data)?,
w_set_rvrt: Self::W_SET_RVRT.from_data(data)?,
w_set_pct: Self::W_SET_PCT.from_data(data)?,
w_set_pct_rvrt: Self::W_SET_PCT_RVRT.from_data(data)?,
w_set_ena_rvrt: Self::W_SET_ENA_RVRT.from_data(data)?,
w_set_rvrt_tms: Self::W_SET_RVRT_TMS.from_data(data)?,
w_set_rvrt_rem: Self::W_SET_RVRT_REM.from_data(data)?,
var_set_ena: Self::VAR_SET_ENA.from_data(data)?,
var_set_mod: Self::VAR_SET_MOD.from_data(data)?,
var_set_pri: Self::VAR_SET_PRI.from_data(data)?,
var_set: Self::VAR_SET.from_data(data)?,
var_set_rvrt: Self::VAR_SET_RVRT.from_data(data)?,
var_set_pct: Self::VAR_SET_PCT.from_data(data)?,
var_set_pct_rvrt: Self::VAR_SET_PCT_RVRT.from_data(data)?,
var_set_ena_rvrt: Self::VAR_SET_ENA_RVRT.from_data(data)?,
var_set_rvrt_tms: Self::VAR_SET_RVRT_TMS.from_data(data)?,
var_set_rvrt_rem: Self::VAR_SET_RVRT_REM.from_data(data)?,
w_rmp: Self::W_RMP.from_data(data)?,
w_rmp_ref: Self::W_RMP_REF.from_data(data)?,
var_rmp: Self::VAR_RMP.from_data(data)?,
anti_isl_ena: Self::ANTI_ISL_ENA.from_data(data)?,
pf_sf: Self::PF_SF.from_data(data)?,
w_max_lim_pct_sf: Self::W_MAX_LIM_PCT_SF.from_data(data)?,
w_set_sf: Self::W_SET_SF.from_data(data)?,
w_set_pct_sf: Self::W_SET_PCT_SF.from_data(data)?,
var_set_sf: Self::VAR_SET_SF.from_data(data)?,
var_set_pct_sf: Self::VAR_SET_PCT_SF.from_data(data)?,
})
}
fn addr(models: &crate::Models) -> crate::ModelAddr<Self> {
models.m704
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum PfwInjEna {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for PfwInjEna {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<PfwInjEna> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
PfwInjEna::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum PfwInjEnaRvrt {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for PfwInjEnaRvrt {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<PfwInjEnaRvrt> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
PfwInjEnaRvrt::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum PfwAbsEna {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for PfwAbsEna {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<PfwAbsEna> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
PfwAbsEna::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum PfwAbsEnaRvrt {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for PfwAbsEnaRvrt {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<PfwAbsEnaRvrt> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
PfwAbsEnaRvrt::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum WMaxLimPctEna {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for WMaxLimPctEna {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<WMaxLimPctEna> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
WMaxLimPctEna::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum WMaxLimPctEnaRvrt {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for WMaxLimPctEnaRvrt {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<WMaxLimPctEnaRvrt> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
WMaxLimPctEnaRvrt::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum WSetEna {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for WSetEna {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<WSetEna> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
WSetEna::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum WSetMod {
WMaxPct = 0,
Watts = 1,
}
impl crate::Value for WSetMod {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<WSetMod> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
WSetMod::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum WSetEnaRvrt {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for WSetEnaRvrt {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<WSetEnaRvrt> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
WSetEnaRvrt::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum VarSetEna {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for VarSetEna {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<VarSetEna> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
VarSetEna::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum VarSetMod {
WMaxPct = 0,
VarMaxPct = 1,
VarAvailPct = 2,
VaMaxPct = 3,
Vars = 4,
}
impl crate::Value for VarSetMod {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<VarSetMod> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
VarSetMod::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum VarSetPri {
Active = 0,
Reactive = 1,
Vendor = 2,
}
impl crate::Value for VarSetPri {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<VarSetPri> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
VarSetPri::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum VarSetEnaRvrt {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for VarSetEnaRvrt {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<VarSetEnaRvrt> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
VarSetEnaRvrt::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum WRmpRef {
AMax = 0,
WMax = 1,
}
impl crate::Value for WRmpRef {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<WRmpRef> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
WRmpRef::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, strum::FromRepr)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
#[repr(u16)]
pub enum AntiIslEna {
Disabled = 0,
Enabled = 1,
}
impl crate::Value for AntiIslEna {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
Self::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)
}
fn encode(self) -> Box<[u16]> {
(self as u16).encode()
}
}
impl crate::Value for Option<AntiIslEna> {
fn decode(data: &[u16]) -> Result<Self, crate::DecodeError> {
let value = u16::decode(data)?;
if value != 65535 {
Ok(Some(
AntiIslEna::from_repr(value).ok_or(crate::DecodeError::InvalidEnumValue)?,
))
} else {
Ok(None)
}
}
fn encode(self) -> Box<[u16]> {
if let Some(value) = self {
value.encode()
} else {
65535.encode()
}
}
}