doip_definitions/doip_payload/
power_mode.rs1use crate::error::{Error, Result};
2
3#[cfg_attr(feature = "python-bindings", pyo3::pyclass(eq, eq_int))]
6#[derive(Clone, Copy, Debug, PartialEq)]
7pub enum PowerMode {
8 NotReady = 0x00,
10
11 Ready = 0x01,
13
14 NotSupported = 0x02,
16}
17
18impl From<PowerMode> for u8 {
19 fn from(value: PowerMode) -> Self {
20 value as u8
21 }
22}
23
24impl TryFrom<&u8> for PowerMode {
25 type Error = Error;
26
27 fn try_from(value: &u8) -> Result<Self> {
28 let val = *value;
29
30 match val {
31 v if v == PowerMode::NotReady as u8 => Ok(PowerMode::NotReady),
32 v if v == PowerMode::Ready as u8 => Ok(PowerMode::Ready),
33 v if v == PowerMode::NotSupported as u8 => Ok(PowerMode::NotSupported),
34 v => Err(Error::InvalidPowerMode { value: v }),
35 }
36 }
37}