pub struct AnyI2sDmaChannel<'d>(/* private fields */);
Available on crate feature
unstable
only.Expand description
An I2S-compatible type-erased DMA channel.
This struct is a type-erased version of a peripheral singleton. It is useful
for creating arrays of peripherals, or avoiding generics. Peripheral singletons
can be type erased by using their From
implementation.
ⓘ
let any_peripheral = AnyI2sDmaChannel::from(peripheral);
Implementations§
Source§impl AnyI2sDmaChannel<'_>
impl AnyI2sDmaChannel<'_>
Sourcepub unsafe fn clone_unchecked(&self) -> Self
pub unsafe fn clone_unchecked(&self) -> Self
Unsafely clone this peripheral reference.
§Safety
You must ensure that you’re only using one instance of this type at a time.
Sourcepub fn reborrow(&mut self) -> AnyI2sDmaChannel<'_>
pub fn reborrow(&mut self) -> AnyI2sDmaChannel<'_>
Creates a new peripheral reference with a shorter lifetime.
Use this method if you would like to keep working with the peripheral after you dropped the driver that consumes this.
See Peripheral singleton section for more information.
Sourcepub fn downcast<P>(self) -> Result<P, Self>where
Self: TryInto<P, Error = Self>,
pub fn downcast<P>(self) -> Result<P, Self>where
Self: TryInto<P, Error = Self>,
Attempts to downcast the pin into the underlying peripheral instance.
§Example
// let peri0 = peripherals.PERI0;
// let peri1 = peripherals.PERI1;
let any_peri0 = AnyPeripheral::from(peri0);
let any_peri1 = AnyPeripheral::from(peri1);
let uart0 = any_peri0
.downcast::<PERI0>()
.expect("This downcast succeeds because AnyPeripheral was created from Peri0");
let uart0 = any_peri1
.downcast::<PERI0>()
.expect_err("This AnyPeripheral was created from Peri1, it cannot be downcast to Peri0");
Trait Implementations§
Source§impl<'d> Debug for AnyI2sDmaChannel<'d>
impl<'d> Debug for AnyI2sDmaChannel<'d>
Source§impl<'d> DmaChannel for AnyI2sDmaChannel<'d>
impl<'d> DmaChannel for AnyI2sDmaChannel<'d>
Source§type Rx = AnyI2sDmaRxChannel<'d>
type Rx = AnyI2sDmaRxChannel<'d>
A description of the RX half of a DMA Channel.
Source§type Tx = AnyI2sDmaTxChannel<'d>
type Tx = AnyI2sDmaTxChannel<'d>
A description of the TX half of a DMA Channel.
Source§impl<'d> From<DMA_I2S0<'d>> for AnyI2sDmaChannel<'d>
impl<'d> From<DMA_I2S0<'d>> for AnyI2sDmaChannel<'d>
Source§impl<'d> From<DMA_I2S1<'d>> for AnyI2sDmaChannel<'d>
impl<'d> From<DMA_I2S1<'d>> for AnyI2sDmaChannel<'d>
Source§impl<'d> TryFrom<AnyI2sDmaChannel<'d>> for DMA_I2S0<'d>
impl<'d> TryFrom<AnyI2sDmaChannel<'d>> for DMA_I2S0<'d>
Source§type Error = AnyI2sDmaChannel<'d>
type Error = AnyI2sDmaChannel<'d>
The type returned in the event of a conversion error.
Source§fn try_from(any: AnyI2sDmaChannel<'d>) -> Result<Self, AnyI2sDmaChannel<'d>>
fn try_from(any: AnyI2sDmaChannel<'d>) -> Result<Self, AnyI2sDmaChannel<'d>>
Performs the conversion.
Source§impl<'d> TryFrom<AnyI2sDmaChannel<'d>> for DMA_I2S1<'d>
impl<'d> TryFrom<AnyI2sDmaChannel<'d>> for DMA_I2S1<'d>
Source§type Error = AnyI2sDmaChannel<'d>
type Error = AnyI2sDmaChannel<'d>
The type returned in the event of a conversion error.
Source§fn try_from(any: AnyI2sDmaChannel<'d>) -> Result<Self, AnyI2sDmaChannel<'d>>
fn try_from(any: AnyI2sDmaChannel<'d>) -> Result<Self, AnyI2sDmaChannel<'d>>
Performs the conversion.