pub trait Interface {
type Error;
fn write(&mut self, data: &[u8]) -> Result<(), Self::Error>;
}
pub struct SerialInterface<S: embedded_io::Write> {
serial: S,
}
impl<S: embedded_io::Write> SerialInterface<S> {
pub fn new(serial: S) -> Self {
Self { serial }
}
}
impl<S: embedded_io::Write> Interface for SerialInterface<S> {
type Error = S::Error;
fn write(&mut self, data: &[u8]) -> Result<(), Self::Error> {
self.serial.write_all(data)
}
}