use crate::devices::button::Button;
use crate::devices::led::Led;
use crate::devices::masterclock::MasterClock;
use crate::devices::serialport::SerialPort;
use crate::devices::wallclock::WallClock;
use crate::oxide::OxideSupervisor;
pub mod masterclock;
pub mod wallclock;
pub mod led;
pub mod button;
pub mod serialport;
pub mod debouncer;
pub type OxideButton<'a,'b,P> = Button<'a,P,OxideSupervisor<'b>>;
pub type OxideLed<P> = Led<P>;
pub type OxideMasterClock<'a,'b,T> = MasterClock<'a,T,OxideSupervisor<'b>>;
pub type OxideSerialPort<'a,'s,P,T,R> = SerialPort<'a,P,T,R,OxideSupervisor<'s>>;
pub type OxideWallClock<'a,'b,T> = WallClock<'a,T,OxideSupervisor<'b>>;