remote_id/data/
operator_id.rs

1pub const MESSAGE_TYPE: u8 = 5;
2
3#[derive(Debug, Copy, Clone, PartialEq)]
4pub struct OperatorId {
5    pub id_type: OperatorIdType,
6    pub operator_id: [u8; 20],
7}
8
9#[derive(Debug, Copy, Clone, PartialEq)]
10pub enum OperatorIdType {
11    OperatorId,
12
13    Unknown(u8),
14}
15
16impl From<u8> for OperatorIdType {
17    fn from(value: u8) -> Self {
18        // 0: Operator ID
19        // 1-200: Reserved
20        // 201-255: Available for private use
21        match value {
22            0 => OperatorIdType::OperatorId,
23            1.. => OperatorIdType::Unknown(value),
24        }
25    }
26}
27
28impl From<OperatorIdType> for u8 {
29    fn from(val: OperatorIdType) -> Self {
30        match val {
31            OperatorIdType::OperatorId => 0,
32            OperatorIdType::Unknown(value) => value,
33        }
34    }
35}