1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
//! Serial interface use nb; /// Read half of a serial interface /// /// Some serial interfaces support different data sizes (8 bits, 9 bits, etc.); /// This can be encoded in this trait via the `Word` type parameter. pub trait Read<Word> { /// Read error type Error; /// Reads a single word from the serial interface fn try_read(&mut self) -> nb::Result<Word, Self::Error>; } /// Write half of a serial interface pub trait Write<Word> { /// Write error type Error; /// Writes a single word to the serial interface fn try_write(&mut self, word: Word) -> nb::Result<(), Self::Error>; /// Ensures that none of the previously written words are still buffered fn try_flush(&mut self) -> nb::Result<(), Self::Error>; }