cadmus_core/battery/
mod.rs

1mod fake;
2mod kobo;
3
4use anyhow::Error;
5
6pub use self::fake::FakeBattery;
7pub use self::kobo::KoboBattery;
8
9#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10pub enum Status {
11    Discharging,
12    Charging,
13    Charged,
14    Unknown, // Full,
15}
16
17impl Status {
18    pub fn is_wired(self) -> bool {
19        matches!(self, Status::Charging | Status::Charged)
20    }
21}
22
23pub trait Battery {
24    fn capacity(&mut self) -> Result<Vec<f32>, Error>;
25    fn status(&mut self) -> Result<Vec<Status>, Error>;
26}