#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct OcaONo(u32);
impl From<u32> for OcaONo {
fn from(value: u32) -> OcaONo {
OcaONo(value)
}
}
impl From<OcaONo> for u32 {
fn from(OcaONo(value): OcaONo) -> u32 {
value
}
}
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct OcaMethod {
pub object: OcaONo,
pub id: OcaMethodId,
}
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct OcaMethodId {
pub level: u16,
pub index: u16,
}
impl From<(u16, u16)> for OcaMethodId {
fn from((level, index): (u16, u16)) -> Self {
Self { level, index }
}
}
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct OcaEvent {
pub object: OcaONo,
pub id: OcaEventId,
}
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct OcaEventId {
pub level: u16,
pub index: u16,
}
impl From<(u16, u16)> for OcaEventId {
fn from((level, index): (u16, u16)) -> Self {
Self { level, index }
}
}
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum OcaStatus {
Ok,
Err(u8),
}
impl From<u8> for OcaStatus {
fn from(value: u8) -> OcaStatus {
match value {
0 => OcaStatus::Ok,
_ => OcaStatus::Err(value),
}
}
}
impl From<OcaStatus> for u8 {
fn from(value: OcaStatus) -> u8 {
match value {
OcaStatus::Ok => 0,
OcaStatus::Err(value) => value,
}
}
}