pub struct RxStream<E: StreamSample> { /* private fields */ }
Expand description
A stream open for receiving.
To obtain a RxStream, call Device::rx_stream. The type parameter E
represents the type
of this stream’s samples.
Streams may involve multiple channels.
Implementations§
source§impl<E: StreamSample> RxStream<E>
impl<E: StreamSample> RxStream<E>
sourcepub fn mtu(&self) -> Result<usize, Error>
pub fn mtu(&self) -> Result<usize, Error>
Get the stream’s maximum transmission unit (MTU) in number of elements.
The MTU specifies the maximum payload transfer in a stream operation. This value can be used as a stream buffer allocation size that can best optimize throughput given the underlying stream implementation.
sourcepub fn activate(&mut self, time_ns: Option<i64>) -> Result<(), Error>
pub fn activate(&mut self, time_ns: Option<i64>) -> Result<(), Error>
Activate a stream.
Call activate
to enable a stream before using read()
§Arguments:
time_ns
– optional activation time in nanoseconds
sourcepub fn deactivate(&mut self, time_ns: Option<i64>) -> Result<(), Error>
pub fn deactivate(&mut self, time_ns: Option<i64>) -> Result<(), Error>
Deactivate a stream. The implementation will control switches or halt data flow.
§Arguments:
time_ns
– optional deactivation time in nanoseconds
sourcepub fn read(
&mut self,
buffers: &mut [&mut [E]],
timeout_us: i64,
) -> Result<usize, Error>
pub fn read( &mut self, buffers: &mut [&mut [E]], timeout_us: i64, ) -> Result<usize, Error>
Read samples from the stream into the provided buffers.
buffers
contains one destination slice for each channel of this stream.
Returns the number of samples read, which may be smaller than the size of the passed arrays.
§Panics
- If
buffers
is not the same length as thechannels
array passed toDevice::rx_stream
.
Trait Implementations§
source§impl<E: StreamSample> Drop for RxStream<E>
impl<E: StreamSample> Drop for RxStream<E>
impl<E: StreamSample> Send for RxStream<E>
Streams may only be used on one thread at a time but may be sent between threads