embassy-stm32

Crates

git

Versions

stm32h747ig-cm7

Flavors

Skip to main content

ChannelCfgTuple

Trait ChannelCfgTuple 

Source
pub trait ChannelCfgTuple<'d, T: Instance, C: ClockOutputMode> {
    type Split;

    // Required method
    fn split_parts(
        self,
        common: &mut DfsdmCommon<'d, T, Enabled>,
    ) -> Self::Split;
}
Expand description

Implemented for the tuple a configure_pins closure returns. The arity is the transceiver-count check: (C0, C1) only impls for Tcv2 instances, the 8-tuple only for Tcv8.

Required Associated Types§

Source

type Split

The fully-wired split (neighbor pin-sets already correct).

Required Methods§

Source

fn split_parts(self, common: &mut DfsdmCommon<'d, T, Enabled>) -> Self::Split

Consumes the tuple and builds the split.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'d, T, C, C0, C1, C2, C3, C4, C5, C6, C7> ChannelCfgTuple<'d, T, C> for (C0, C1, C2, C3, C4, C5, C6, C7)
where T: Instance<Transceivers = Tcv8>, C: ClockOutputMode, C0: ChannelCfg<'d, T, Tcv0>, C1: ChannelCfg<'d, T, Tcv1>, C2: ChannelCfg<'d, T, Tcv2>, C3: ChannelCfg<'d, T, Tcv3>, C4: ChannelCfg<'d, T, Tcv4>, C5: ChannelCfg<'d, T, Tcv5>, C6: ChannelCfg<'d, T, Tcv6>, C7: ChannelCfg<'d, T, Tcv7>, T::Filters: Tcv8SplitBuild<T, C, <C0 as ChannelCfg<'d, T, Tcv0>>::Presence, <C1 as ChannelCfg<'d, T, Tcv1>>::Presence, <C2 as ChannelCfg<'d, T, Tcv2>>::Presence, <C3 as ChannelCfg<'d, T, Tcv3>>::Presence, <C4 as ChannelCfg<'d, T, Tcv4>>::Presence, <C5 as ChannelCfg<'d, T, Tcv5>>::Presence, <C6 as ChannelCfg<'d, T, Tcv6>>::Presence, <C7 as ChannelCfg<'d, T, Tcv7>>::Presence>,

Source§

type Split = <<T as Instance>::Filters as Tcv8SplitBuild<T, C, <C0 as ChannelCfg<'d, T, Tcv0>>::Presence, <C1 as ChannelCfg<'d, T, Tcv1>>::Presence, <C2 as ChannelCfg<'d, T, Tcv2>>::Presence, <C3 as ChannelCfg<'d, T, Tcv3>>::Presence, <C4 as ChannelCfg<'d, T, Tcv4>>::Presence, <C5 as ChannelCfg<'d, T, Tcv5>>::Presence, <C6 as ChannelCfg<'d, T, Tcv6>>::Presence, <C7 as ChannelCfg<'d, T, Tcv7>>::Presence>>::Out

Source§

fn split_parts(self, common: &mut DfsdmCommon<'d, T, Enabled>) -> Self::Split

Source§

impl<'d, T, C, C0, C1, C2, C3> ChannelCfgTuple<'d, T, C> for (C0, C1, C2, C3)
where T: Instance<Transceivers = Tcv4>, C: ClockOutputMode, C0: ChannelCfg<'d, T, Tcv0>, C1: ChannelCfg<'d, T, Tcv1>, C2: ChannelCfg<'d, T, Tcv2>, C3: ChannelCfg<'d, T, Tcv3>, T::Filters: Tcv4SplitBuild<T, C, <C0 as ChannelCfg<'d, T, Tcv0>>::Presence, <C1 as ChannelCfg<'d, T, Tcv1>>::Presence, <C2 as ChannelCfg<'d, T, Tcv2>>::Presence, <C3 as ChannelCfg<'d, T, Tcv3>>::Presence>,

Source§

type Split = <<T as Instance>::Filters as Tcv4SplitBuild<T, C, <C0 as ChannelCfg<'d, T, Tcv0>>::Presence, <C1 as ChannelCfg<'d, T, Tcv1>>::Presence, <C2 as ChannelCfg<'d, T, Tcv2>>::Presence, <C3 as ChannelCfg<'d, T, Tcv3>>::Presence>>::Out

Source§

fn split_parts(self, common: &mut DfsdmCommon<'d, T, Enabled>) -> Self::Split

Source§

impl<'d, T, C, C0, C1> ChannelCfgTuple<'d, T, C> for (C0, C1)
where T: Instance<Transceivers = Tcv2>, C: ClockOutputMode, C0: ChannelCfg<'d, T, Tcv0>, C1: ChannelCfg<'d, T, Tcv1>, T::Filters: Tcv2SplitBuild<T, C, <C0 as ChannelCfg<'d, T, Tcv0>>::Presence, <C1 as ChannelCfg<'d, T, Tcv1>>::Presence>,

Source§

type Split = <<T as Instance>::Filters as Tcv2SplitBuild<T, C, <C0 as ChannelCfg<'d, T, Tcv0>>::Presence, <C1 as ChannelCfg<'d, T, Tcv1>>::Presence>>::Out

Source§

fn split_parts(self, common: &mut DfsdmCommon<'d, T, Enabled>) -> Self::Split

Implementors§