Skip to main content

battery_ffi/
state.rs

1use battery::State as RawState;
2
3/// Possible battery states.
4///
5/// Enum members are prefixed here in order to not have "redeclaration of enumerator" error in C.
6#[repr(u8)]
7pub enum State {
8    // DO NOT RE-ORDER VALUES IN THIS ENUM, IT WILL AFFECT FFI USERS!
9    StateUnknown = 0,
10    StateCharging = 1,
11    StateDischarging = 2,
12    StateEmpty = 3,
13    StateFull = 4,
14}
15
16impl From<RawState> for State {
17    fn from(s: RawState) -> Self {
18        match s {
19            RawState::Unknown => State::StateUnknown,
20            RawState::Charging => State::StateCharging,
21            RawState::Discharging => State::StateDischarging,
22            RawState::Empty => State::StateEmpty,
23            RawState::Full => State::StateFull,
24            _ => State::StateUnknown,
25        }
26    }
27}