embedded_hal/
serial.rs

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