cadmus_core/battery/
mod.rs1mod 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, }
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}