mod gpio; mod null; mod piface; pub use gpio::GpioDriver; pub use null::NullDriver; pub use piface::PiFaceDriver; use crate::errors::EmgauwaError; pub trait RelayDriver { fn get_high(&self, value: bool) -> bool { value ^ self.get_inverted() } fn set(&mut self, value: bool) -> Result<(), EmgauwaError>; fn get_pin(&self) -> u8; fn get_inverted(&self) -> bool; }