mod gpio;
mod piface;

pub use gpio::GpioDriver;
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;
}