Skip to main content

cimstructs/
BatteryStateKind.rs

1/// The state of the battery unit.
2#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
3pub enum BatteryStateKind {
4    /// Stored energy is decreasing.
5    discharging,
6    /// Unable to charge, and not discharging.
7    full,
8    /// Neither charging nor discharging, but able to do so.
9    waiting,
10    /// Stored energy is increasing.
11    charging,
12    /// Unable to discharge, and not charging.
13    empty,
14}
15
16impl BatteryStateKind {
17    pub fn uri(&self) -> &'static str {
18        match self {
19            BatteryStateKind::discharging => "http://iec.ch/TC57/CIM100#BatteryStateKind.discharging",
20            BatteryStateKind::full => "http://iec.ch/TC57/CIM100#BatteryStateKind.full",
21            BatteryStateKind::waiting => "http://iec.ch/TC57/CIM100#BatteryStateKind.waiting",
22            BatteryStateKind::charging => "http://iec.ch/TC57/CIM100#BatteryStateKind.charging",
23            BatteryStateKind::empty => "http://iec.ch/TC57/CIM100#BatteryStateKind.empty",
24        }
25    }
26}