ng_gateway_sdk/southward/
types.rs1use serde::{Deserialize, Serialize};
2use serde_repr::{Deserialize_repr, Serialize_repr};
3
4#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize_repr, Deserialize_repr)]
5#[repr(i16)]
6pub enum Status {
7 Enabled = 0,
8 Disabled = 1,
9}
10
11#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize_repr, Deserialize_repr)]
12#[repr(i16)]
13pub enum CollectionType {
14 Report = 0,
16 Collection = 1,
18}
19
20#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize_repr, Deserialize_repr)]
21#[repr(i16)]
22pub enum ReportType {
23 Change = 0,
25 Always = 1,
27}
28
29#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize_repr, Deserialize_repr)]
30#[repr(i16)]
31pub enum DataType {
32 Boolean = 0,
33 Int8 = 1,
34 UInt8 = 2,
35 Int16 = 3,
36 UInt16 = 4,
37 Int32 = 5,
38 UInt32 = 6,
39 Int64 = 7,
40 UInt64 = 8,
41 Float32 = 9,
42 Float64 = 10,
43 String = 11,
44 Binary = 12,
45 Timestamp = 13,
46}
47
48impl DataType {
49 #[inline]
50 pub fn is_numeric(&self) -> bool {
51 matches!(
52 self,
53 DataType::Int8
54 | DataType::UInt8
55 | DataType::Int16
56 | DataType::UInt16
57 | DataType::Int32
58 | DataType::UInt32
59 | DataType::Int64
60 | DataType::UInt64
61 | DataType::Float32
62 | DataType::Float64
63 )
64 }
65}
66
67#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize_repr, Deserialize_repr)]
68#[repr(i16)]
69pub enum AccessMode {
70 Read = 0,
71 Write = 1,
72 ReadWrite = 2,
73}
74
75#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize_repr, Deserialize_repr)]
76#[repr(i16)]
77pub enum DataPointType {
78 Attribute = 0,
79 Telemetry = 1,
80}
81
82#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
84pub enum DeviceState {
85 Inactive,
86 Active,
87 Error,
88 Maintenance,
89}
90
91impl DeviceState {
92 #[inline]
94 pub fn is_active(&self) -> bool {
95 matches!(self, DeviceState::Active)
96 }
97}