pub trait JoinVrExt: Interface {
    type E: Interface;

    // Required method
    fn join_vr(self) -> Self::E;
}
Expand description

Extension trait for join_vr.

Required Associated Types§

source

type E: Interface

Egress interface.

Required Methods§

source

fn join_vr(self) -> Self::E

Join valid-ready.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<P1: Copy, P2: Copy> JoinVrExt for (Vr<P1>, Vr<P2>)

source§

fn join_vr(self) -> Vr<(P1, P2)>

A variation of join for valid-ready interfaces, that has the correct resolver type.

  • Payloads: Zipped to one interface.
  • Resolver: If all the ingress payloads are valid and the egress ready signal is true, then all the ingress ready signals are true. Otherwise, all the ingress ready signals are false.
InterfaceIngressEgress
Fwd(HOption<P1>, HOption<P2>)HOption<(P1, P2)>
Bwd(Ready<()>, Ready<()>)Ready<()>
§

type E = I<AndH<ValidH<(P1, P2), ()>>, { Dep::Helpful }>

source§

impl<P1: Copy, P2: Copy, P3: Copy> JoinVrExt for (Vr<P1>, Vr<P2>, Vr<P3>)

source§

fn join_vr(self) -> Vr<(P1, P2, P3)>

A variation of join_vr for 3-12 valid-ready interfaces. See the 2-tuple version for more information.

§

type E = I<AndH<ValidH<(P1, P2, P3), ()>>, { Dep::Helpful }>

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy> JoinVrExt for (Vr<P1>, Vr<P2>, Vr<P3>, Vr<P4>)

source§

fn join_vr(self) -> Vr<(P1, P2, P3, P4)>

A variation of join_vr for 3-12 valid-ready interfaces. See the 2-tuple version for more information.

§

type E = I<AndH<ValidH<(P1, P2, P3, P4), ()>>, { Dep::Helpful }>

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy> JoinVrExt for (Vr<P1>, Vr<P2>, Vr<P3>, Vr<P4>, Vr<P5>)

source§

fn join_vr(self) -> Vr<(P1, P2, P3, P4, P5)>

A variation of join_vr for 3-12 valid-ready interfaces. See the 2-tuple version for more information.

§

type E = I<AndH<ValidH<(P1, P2, P3, P4, P5), ()>>, { Dep::Helpful }>

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy> JoinVrExt for (Vr<P1>, Vr<P2>, Vr<P3>, Vr<P4>, Vr<P5>, Vr<P6>)

source§

fn join_vr(self) -> Vr<(P1, P2, P3, P4, P5, P6)>

A variation of join_vr for 3-12 valid-ready interfaces. See the 2-tuple version for more information.

§

type E = I<AndH<ValidH<(P1, P2, P3, P4, P5, P6), ()>>, { Dep::Helpful }>

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy> JoinVrExt for (Vr<P1>, Vr<P2>, Vr<P3>, Vr<P4>, Vr<P5>, Vr<P6>, Vr<P7>)

source§

fn join_vr(self) -> Vr<(P1, P2, P3, P4, P5, P6, P7)>

A variation of join_vr for 3-12 valid-ready interfaces. See the 2-tuple version for more information.

§

type E = I<AndH<ValidH<(P1, P2, P3, P4, P5, P6, P7), ()>>, { Dep::Helpful }>

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy> JoinVrExt for (Vr<P1>, Vr<P2>, Vr<P3>, Vr<P4>, Vr<P5>, Vr<P6>, Vr<P7>, Vr<P8>)

source§

fn join_vr(self) -> Vr<(P1, P2, P3, P4, P5, P6, P7, P8)>

A variation of join_vr for 3-12 valid-ready interfaces. See the 2-tuple version for more information.

§

type E = I<AndH<ValidH<(P1, P2, P3, P4, P5, P6, P7, P8), ()>>, { Dep::Helpful }>

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, P9: Copy> JoinVrExt for (Vr<P1>, Vr<P2>, Vr<P3>, Vr<P4>, Vr<P5>, Vr<P6>, Vr<P7>, Vr<P8>, Vr<P9>)

source§

fn join_vr(self) -> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9)>

A variation of join_vr for 3-12 valid-ready interfaces. See the 2-tuple version for more information.

§

type E = I<AndH<ValidH<(P1, P2, P3, P4, P5, P6, P7, P8, P9), ()>>, { Dep::Helpful }>

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, P9: Copy, P10: Copy> JoinVrExt for (Vr<P1>, Vr<P2>, Vr<P3>, Vr<P4>, Vr<P5>, Vr<P6>, Vr<P7>, Vr<P8>, Vr<P9>, Vr<P10>)

source§

fn join_vr(self) -> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)>

A variation of join_vr for 3-12 valid-ready interfaces. See the 2-tuple version for more information.

§

type E = I<AndH<ValidH<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10), ()>>, { Dep::Helpful }>

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, P9: Copy, P10: Copy, P11: Copy> JoinVrExt for (Vr<P1>, Vr<P2>, Vr<P3>, Vr<P4>, Vr<P5>, Vr<P6>, Vr<P7>, Vr<P8>, Vr<P9>, Vr<P10>, Vr<P11>)

source§

fn join_vr(self) -> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)>

A variation of join_vr for 3-12 valid-ready interfaces. See the 2-tuple version for more information.

§

type E = I<AndH<ValidH<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11), ()>>, { Dep::Helpful }>

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, P9: Copy, P10: Copy, P11: Copy, P12: Copy> JoinVrExt for (Vr<P1>, Vr<P2>, Vr<P3>, Vr<P4>, Vr<P5>, Vr<P6>, Vr<P7>, Vr<P8>, Vr<P9>, Vr<P10>, Vr<P11>, Vr<P12>)

source§

fn join_vr(self) -> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)>

A variation of join_vr for 3-12 valid-ready interfaces. See the 2-tuple version for more information.

§

type E = I<AndH<ValidH<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12), ()>>, { Dep::Helpful }>

source§

impl<P: Copy, const N: usize> JoinVrExt for [Vr<P>; N]

source§

fn join_vr(self) -> Vr<Array<P, N>>

A variation of join for valid-ready interfaces, that has the correct resolver type.

  • Payloads: Zipped to one interface.
  • Resolver: If all the ingress payloads are valid and the egress ready signal is true, then all the ingress ready signals are true. Otherwise, all the ingress ready signals are false.
InterfaceIngressEgress
FwdArray<HOption<P>, N>HOption<Array<P, N>>
BwdArray<Ready<()>, N>Ready<()>
§

type E = I<AndH<ValidH<Array<P, N>, ()>>, { Dep::Helpful }>

Implementors§