diff --git a/src/spi.rs b/src/spi.rs index f49637a9..e5d74aff 100644 --- a/src/spi.rs +++ b/src/spi.rs @@ -47,33 +47,14 @@ pub trait Send { /// Write (master mode) #[cfg(feature = "unproven")] -pub mod full_duplex { - /// Default implementation of `spi::FullDuplex` for implementers of - /// `spi::Send` - /// - /// Also needs a `send` method to return the byte read during the last send - pub trait Default: ::spi::Send { - /// Reads the word stored in the shift register - /// - /// **NOTE** A word must be sent to the slave before attempting to call this - /// method. - fn read(&mut self) -> nb::Result; +impl Send for FullDuplex { + type Error = E; + fn send(&mut self, word: W) -> nb::Result<(), Self::Error> { + self.send(word) } - impl ::spi::FullDuplex for S - where - S: Default, - W: Clone, - { - type Error = S::Error; - - fn read(&mut self) -> nb::Result { - self.read() - } - - fn send(&mut self, word: W) -> nb::Result<(), Self::Error> { - self.send(word) - } + fn completed(&mut self) -> nb::Result<(), Self::Error> { + self.read().map(|_| ()) } }