Skip to main content

I2sRxDmaTransfer

Struct I2sRxDmaTransfer 

Source
pub struct I2sRxDmaTransfer<'d, Dm, Buf>
where Dm: DriverMode, Buf: DmaRxBuffer,
{ /* private fields */ }
Available on crate feature unstable only.
Expand description

A structure representing a DMA transfer.

This structure holds references to the driver instance, DMA buffers, and transfer status.

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Implementations§

Source§

impl<'d, Dm, Buf> I2sRxDmaTransfer<'d, Dm, Buf>
where Dm: DriverMode, Buf: DmaRxBuffer,

Source

pub fn is_done(&self) -> bool

Returns true when Self::wait will not block.

Source

pub fn wait(self) -> (Result<(), DmaError>, I2sRx<'d, Dm>, Buf::Final)

Waits for the transfer to finish and returns the peripheral and buffer.

Source

pub fn stop(self) -> (I2sRx<'d, Dm>, Buf::Final)

Immediately stop the transfer and return the peripheral and buffer.

Source§

impl<'d, Buf> I2sRxDmaTransfer<'d, Async, Buf>
where Buf: DmaRxBuffer,

Source

pub async fn wait_async( self, ) -> (Result<(), DmaError>, I2sRx<'d, Async>, Buf::Final)

Waits for the transfer to finish and returns the peripheral and buffer.

Source

pub async fn wait_for_done_async(&mut self) -> Result<(), DmaError>

Waits for the transfer to finish and returns the peripheral and buffer.

Source

pub async fn wait_for_available_async(&mut self) -> Result<(), DmaError>

Waits for a condition that might indicate more data is available.

Trait Implementations§

Source§

impl<Dm: DriverMode, BUF: DmaRxBuffer> Deref for I2sRxDmaTransfer<'_, Dm, BUF>

Source§

type Target = <BUF as DmaRxBuffer>::View

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<Dm: DriverMode, BUF: DmaRxBuffer> DerefMut for I2sRxDmaTransfer<'_, Dm, BUF>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<Dm: DriverMode, BUF: DmaRxBuffer> Drop for I2sRxDmaTransfer<'_, Dm, BUF>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<'d, Dm, Buf> !RefUnwindSafe for I2sRxDmaTransfer<'d, Dm, Buf>

§

impl<'d, Dm, Buf> !UnwindSafe for I2sRxDmaTransfer<'d, Dm, Buf>

§

impl<'d, Dm, Buf> Freeze for I2sRxDmaTransfer<'d, Dm, Buf>
where ManuallyDrop<I2sRx<'d, Dm>>: Freeze, ManuallyDrop<<Buf as DmaRxBuffer>::View>: Freeze,

§

impl<'d, Dm, Buf> Send for I2sRxDmaTransfer<'d, Dm, Buf>
where ManuallyDrop<I2sRx<'d, Dm>>: Send, ManuallyDrop<<Buf as DmaRxBuffer>::View>: Send,

§

impl<'d, Dm, Buf> Sync for I2sRxDmaTransfer<'d, Dm, Buf>
where ManuallyDrop<I2sRx<'d, Dm>>: Sync, ManuallyDrop<<Buf as DmaRxBuffer>::View>: Sync,

§

impl<'d, Dm, Buf> Unpin for I2sRxDmaTransfer<'d, Dm, Buf>
where ManuallyDrop<I2sRx<'d, Dm>>: Unpin, ManuallyDrop<<Buf as DmaRxBuffer>::View>: Unpin,

§

impl<'d, Dm, Buf> UnsafeUnpin for I2sRxDmaTransfer<'d, Dm, Buf>
where ManuallyDrop<I2sRx<'d, Dm>>: UnsafeUnpin, ManuallyDrop<<Buf as DmaRxBuffer>::View>: UnsafeUnpin,

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CryptoRng for T
where T: DerefMut, <T as Deref>::Target: CryptoRng,

Source§

impl<R> CryptoRng for R
where R: TryCryptoRng<Error = Infallible> + ?Sized,

§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<R> Rng for R
where R: TryRng<Error = Infallible> + ?Sized,

Source§

fn next_u32(&mut self) -> u32

Return the next random u32.
Source§

fn next_u64(&mut self) -> u64

Return the next random u64.
Source§

fn fill_bytes(&mut self, dst: &mut [u8])

Fill dest with random data. Read more
Source§

impl<T> RngCore for T
where T: DerefMut, <T as Deref>::Target: RngCore,

Source§

fn next_u32(&mut self) -> u32

Return the next random u32. Read more
Source§

fn next_u64(&mut self) -> u64

Return the next random u64. Read more
Source§

fn fill_bytes(&mut self, dst: &mut [u8])

Fill dest with random data. Read more
Source§

impl<R> RngCore for R
where R: Rng,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<R> TryCryptoRng for R
where R: CryptoRng + ?Sized,

Source§

impl<R> TryCryptoRng for R
where R: DerefMut, <R as Deref>::Target: TryCryptoRng,

§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<R> TryRng for R
where R: DerefMut, <R as Deref>::Target: TryRng,

Source§

type Error = <<R as Deref>::Target as TryRng>::Error

The type returned in the event of a RNG error. Read more
Source§

fn try_next_u32(&mut self) -> Result<u32, <R as TryRng>::Error>

Return the next random u32.
Source§

fn try_next_u64(&mut self) -> Result<u64, <R as TryRng>::Error>

Return the next random u64.
Source§

fn try_fill_bytes(&mut self, dst: &mut [u8]) -> Result<(), <R as TryRng>::Error>

Fill dst entirely with random data.
Source§

impl<R> TryRngCore for R
where R: RngCore + ?Sized,

Source§

type Error = Infallible

The type returned in the event of a RNG error.
Source§

fn try_next_u32(&mut self) -> Result<u32, <R as TryRngCore>::Error>

Return the next random u32.
Source§

fn try_next_u64(&mut self) -> Result<u64, <R as TryRngCore>::Error>

Return the next random u64.
Source§

fn try_fill_bytes( &mut self, dst: &mut [u8], ) -> Result<(), <R as TryRngCore>::Error>

Fill dest entirely with random data.
Source§

fn unwrap_err(self) -> UnwrapErr<Self>
where Self: Sized,

Wrap RNG with the UnwrapErr wrapper.
Source§

fn unwrap_mut(&mut self) -> UnwrapMut<'_, Self>

Wrap RNG with the UnwrapMut wrapper.
Source§

impl<R> TryRngCore for R
where R: TryRng,

Source§

type Error = <R as TryRng>::Error

👎Deprecated since 0.10.0:

use TryRng instead

Error type.