1use clap::ValueEnum;
2use rustbac_core::types::ObjectType;
3
4#[derive(Debug, Clone, ValueEnum)]
8pub enum ObjectTypeArg {
9 AnalogInput,
10 AnalogOutput,
11 AnalogValue,
12 BinaryInput,
13 BinaryOutput,
14 BinaryValue,
15 Calendar,
16 Command,
17 Device,
18 EventEnrollment,
19 File,
20 Group,
21 Loop,
22 MultiStateInput,
23 MultiStateOutput,
24 NotificationClass,
25 Program,
26 Schedule,
27 Averaging,
28 MultiStateValue,
29 TrendLog,
30 LifeSafetyPoint,
31 LifeSafetyZone,
32 Accumulator,
33 PulseConverter,
34 EventLog,
35 GlobalGroup,
36 TrendLogMultiple,
37 StructuredView,
38 AccessDoor,
39}
40
41impl ObjectTypeArg {
42 pub const fn into_object_type(self) -> ObjectType {
44 match self {
45 Self::AnalogInput => ObjectType::AnalogInput,
46 Self::AnalogOutput => ObjectType::AnalogOutput,
47 Self::AnalogValue => ObjectType::AnalogValue,
48 Self::BinaryInput => ObjectType::BinaryInput,
49 Self::BinaryOutput => ObjectType::BinaryOutput,
50 Self::BinaryValue => ObjectType::BinaryValue,
51 Self::Calendar => ObjectType::Calendar,
52 Self::Command => ObjectType::Command,
53 Self::Device => ObjectType::Device,
54 Self::EventEnrollment => ObjectType::EventEnrollment,
55 Self::File => ObjectType::File,
56 Self::Group => ObjectType::Group,
57 Self::Loop => ObjectType::Loop,
58 Self::MultiStateInput => ObjectType::MultiStateInput,
59 Self::MultiStateOutput => ObjectType::MultiStateOutput,
60 Self::NotificationClass => ObjectType::NotificationClass,
61 Self::Program => ObjectType::Program,
62 Self::Schedule => ObjectType::Schedule,
63 Self::Averaging => ObjectType::Averaging,
64 Self::MultiStateValue => ObjectType::MultiStateValue,
65 Self::TrendLog => ObjectType::TrendLog,
66 Self::LifeSafetyPoint => ObjectType::LifeSafetyPoint,
67 Self::LifeSafetyZone => ObjectType::LifeSafetyZone,
68 Self::Accumulator => ObjectType::Accumulator,
69 Self::PulseConverter => ObjectType::PulseConverter,
70 Self::EventLog => ObjectType::EventLog,
71 Self::GlobalGroup => ObjectType::GlobalGroup,
72 Self::TrendLogMultiple => ObjectType::TrendLogMultiple,
73 Self::StructuredView => ObjectType::StructuredView,
74 Self::AccessDoor => ObjectType::AccessDoor,
75 }
76 }
77}