pub enum Operation<'a, Word: 'static> {
    /// Read data into the provided buffer.
    ///
    /// Equivalent to [SpiBus::read].
    Read(&'a mut [Word]),
    /// Write data from the provided buffer,
    /// discarding read data.
    ///
    /// Equivalent to [SpiBus::write].
    Write(&'a [Word]),
    /// Read data into the first buffer,
    /// while writing data from the second buffer.
    ///
    /// Equivalent to [SpiBus::transfer].
    Transfer(&'a mut [Word], &'a [Word]),
    /// Write data out while reading data into
    /// the provided buffer.
    ///
    /// Equivalent to [SpiBus::transfer_in_place].
    TransferInPlace(&'a mut [Word]),
    /// Delay for at least the specified number
    /// of nanoseconds.
    DelayNs(u32),
}
