pub trait SpiBus<Word: Copy + 'static = u8>: ErrorType {
    fn read(&mut self, words: &mut [Word])
        -> Result<(), Self::Error>;
    fn write(&mut self, words: &[Word])
        -> Result<(), Self::Error>;
    fn transfer(&mut self, read: &mut [Word],
        write: &[Word]) -> Result<(), Self::Error>;
    fn transfer_in_place(&mut self, words: &mut
        [Word]) -> Result<(), Self::Error>;
    fn flush(&mut self) -> Result<(), Self::Error>;
}
