pub trait Write<Word> {
type Error;
fn try_bwrite_all(&mut self, buffer: &[Word]) -> Result<(), Self::Error>;
fn try_bflush(&mut self) -> Result<(), Self::Error>;
}
pub mod write {
pub trait Default<Word>: crate::serial::Write<Word> {}
impl<S, Word> crate::blocking::serial::Write<Word> for S
where
S: Default<Word>,
Word: Clone,
{
type Error = S::Error;
fn try_bwrite_all(&mut self, buffer: &[Word]) -> Result<(), Self::Error> {
for word in buffer {
nb::block!(self.try_write(word.clone()))?;
}
Ok(())
}
fn try_bflush(&mut self) -> Result<(), Self::Error> {
nb::block!(self.try_flush())?;
Ok(())
}
}
}