pub trait I2s<W> {
type Error: Debug;
// Required methods
fn read<'w>(
&mut self,
left_words: &'w mut [W],
right_words: &'w mut [W],
) -> Result<(), Self::Error>;
fn write<'w>(
&mut self,
left_words: &'w [W],
right_words: &'w [W],
) -> Result<(), Self::Error>;
fn write_iter<LW, RW>(
&mut self,
left_words: LW,
right_words: RW,
) -> Result<(), Self::Error>
where LW: IntoIterator<Item = W>,
RW: IntoIterator<Item = W>;
}Expand description
Blocking I2S trait
Required Associated Types§
Required Methods§
Sourcefn read<'w>(
&mut self,
left_words: &'w mut [W],
right_words: &'w mut [W],
) -> Result<(), Self::Error>
fn read<'w>( &mut self, left_words: &'w mut [W], right_words: &'w mut [W], ) -> Result<(), Self::Error>
Reads enough bytes to fill left_words and right_words.
It is allowed for left_words and right_words to have different lengths.
The read runs for max(left_words.len(), right_words.len()) words.
Incoming words after the shorter buffer has been filled will be discarded.
Sourcefn write<'w>(
&mut self,
left_words: &'w [W],
right_words: &'w [W],
) -> Result<(), Self::Error>
fn write<'w>( &mut self, left_words: &'w [W], right_words: &'w [W], ) -> Result<(), Self::Error>
Sends left_words and right_words.
It is allowed for left_words and right_words to have different lengths.
The write runs for max(left_words.len(), right_words.len()) words.
The value of words sent for the shorter channel after its buffer has been sent
is implementation-defined, typically 0x00, 0xFF, or configurable.
Sourcefn write_iter<LW, RW>(
&mut self,
left_words: LW,
right_words: RW,
) -> Result<(), Self::Error>where
LW: IntoIterator<Item = W>,
RW: IntoIterator<Item = W>,
fn write_iter<LW, RW>(
&mut self,
left_words: LW,
right_words: RW,
) -> Result<(), Self::Error>where
LW: IntoIterator<Item = W>,
RW: IntoIterator<Item = W>,
Sends left_words and right_words getting the data from iterators.
It is allowed for left_words and right_words to have different lengths.
The write runs for max(left_words.len(), right_words.len()) words.
The value of words sent for the shorter channel after its buffer has been sent
is implementation-defined, typically 0x00, 0xFF, or configurable.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.