#![no_std]
mod button;
mod impls;
pub use button::{Button, Set as ButtonSet, State as ButtonsState};
pub trait ButtonsStateSource {
#[must_use]
fn buttons_state(&self) -> ButtonsState;
}
pub trait CrankStateSource {
#[must_use]
fn crank_angle_deg(&self) -> f32;
#[must_use]
fn crank_angle_rad(&self) -> f32 {
self.crank_angle_deg().to_radians()
}
#[must_use]
fn crank_change_deg(&self) -> f32;
#[must_use]
fn crank_change_rad(&self) -> f32 {
self.crank_angle_deg().to_radians()
}
#[must_use]
fn is_crank_docked(&self) -> bool;
}