Skip to main content

I2sParallelTransfer

Struct I2sParallelTransfer 

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

Represents an ongoing (or potentially finished) transfer using the I2S parallel interface.

§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, BUF, Dm> I2sParallelTransfer<'d, BUF, Dm>
where BUF: DmaTxBuffer, Dm: DriverMode,

Source

pub fn is_done(&self) -> bool

Returns whether the transfer is complete.

Source

pub fn wait(self) -> (I2sParallel<'d, Dm>, BUF::Final)

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

Source§

impl<'d, BUF> I2sParallelTransfer<'d, BUF, Blocking>
where BUF: DmaTxBuffer,

Interrupt management for an ongoing transfer.

The driver itself has been consumed by I2sParallel::send, so these methods take &self and allow an interrupt handler to manage the interrupt sources through the transfer object.

§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.

Source

pub fn set_interrupt_handler(&mut self, handler: InterruptHandler)

Sets the interrupt handler for the I2S parallel peripheral.

The new handler removes the old handler. This method does not turn on the interrupt sources. Use Self::listen to turn on interrupt sources.

Source

pub fn listen(&self, interrupts: impl Into<EnumSet<I2sParallelInterrupt>>)

Turns on the given interrupt sources.

Source

pub fn unlisten(&self, interrupts: impl Into<EnumSet<I2sParallelInterrupt>>)

Turns off the given interrupt sources.

Source

pub fn clear_interrupts( &self, interrupts: impl Into<EnumSet<I2sParallelInterrupt>>, )

Clears the interrupt flags of the given interrupt sources.

Source

pub fn interrupts(&self) -> EnumSet<I2sParallelInterrupt>

Returns the interrupt sources that are set.

Source§

impl<BUF> I2sParallelTransfer<'_, BUF, Async>
where BUF: DmaTxBuffer,

Source

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

Waits for Self::is_done to return true.

§Errors

Returns a DmaError when the transfer ends with a descriptor error.

§Cancellation Safety

This method is cancellation safe. Dropping the future does not stop the transfer, and the method can be called again to wait for the transfer to complete.

Trait Implementations§

Source§

impl<BUF, Dm> Deref for I2sParallelTransfer<'_, BUF, Dm>
where BUF: DmaTxBuffer, Dm: DriverMode,

Source§

type Target = <BUF as DmaTxBuffer>::View

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl<BUF, Dm> DerefMut for I2sParallelTransfer<'_, BUF, Dm>
where BUF: DmaTxBuffer, Dm: DriverMode,

Source§

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

Mutably dereferences the value.
Source§

impl<BUF, Dm> Drop for I2sParallelTransfer<'_, BUF, Dm>
where BUF: DmaTxBuffer, Dm: DriverMode,

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, BUF, Dm> !UnwindSafe for I2sParallelTransfer<'d, BUF, Dm>

§

impl<'d, BUF, Dm> Freeze for I2sParallelTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::View: Freeze,

§

impl<'d, BUF, Dm> RefUnwindSafe for I2sParallelTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::View: RefUnwindSafe, Dm: RefUnwindSafe,

§

impl<'d, BUF, Dm> Send for I2sParallelTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::View: Send, Dm: Send,

§

impl<'d, BUF, Dm> Sync for I2sParallelTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::View: Sync, Dm: Sync,

§

impl<'d, BUF, Dm> Unpin for I2sParallelTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::View: Unpin, Dm: Unpin,

§

impl<'d, BUF, Dm> UnsafeUnpin for I2sParallelTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::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.