Type Alias hazardflow_designs::std::valid::Valid

source ·
pub type Valid<P> = I<ValidH<P, ()>, { Dep::Helpful }>;
Expand description

Valid interface.

A transfer always happens for a valid payload.

  • Interface::Fwd = HOption<P>
  • Interface::Bwd = ()

Aliased Type§

struct Valid<P> { /* private fields */ }

Implementations§

source§

impl<P: Copy, const N: usize> Valid<(P, BoundedU<N>)>

source

pub fn branch(self) -> [Valid<P>; N]

A variation of branch for a valid interface, that has the correct resolver type.

  • Payload: Only the selected interface’s payload will be valid.
  • Resolvers: The resolvers carry no information.
InterfaceIngressEgress
FwdHOption<P>Array<HOption<P>, N>
Bwd()Array<(), N>
source§

impl<P: Copy> Valid<P>

source

pub fn lfork(self) -> (Valid<P>, Valid<P>)

A variation of lfork for a valid interface, that has the correct resolver type.

  • Payload: Duplicated to multiple interfaces.
  • Resolvers: The resolvers carry no information.
InterfaceIngressEgress
FwdHOption<P>(HOption<P>, HOption<P>)
Bwd()((), ())
source§

impl<P1: Copy, P2: Copy> Valid<(P1, P2)>

source

pub fn unzip(self) -> (Valid<P1>, Valid<P2>)

A variation of unzip for a valid interface, that has the correct resolver type.

  • Payload: Unzipped to multiple interfaces.
  • Resolvers: The resolvers carry no information.
InterfaceIngressEgress
FwdHOption<(P1, P2)>(HOption<P1>, HOption<P2>)
Bwd()((), ())
source§

impl<P1: Copy, P2: Copy, P3: Copy> Valid<(P1, P2, P3)>

source

pub fn unzip(self) -> (Valid<P1>, Valid<P2>, Valid<P3>)

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

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy> Valid<(P1, P2, P3, P4)>

source

pub fn unzip(self) -> (Valid<P1>, Valid<P2>, Valid<P3>, Valid<P4>)

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

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy> Valid<(P1, P2, P3, P4, P5)>

source

pub fn unzip(self) -> (Valid<P1>, Valid<P2>, Valid<P3>, Valid<P4>, Valid<P5>)

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

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy> Valid<(P1, P2, P3, P4, P5, P6)>

source

pub fn unzip( self ) -> (Valid<P1>, Valid<P2>, Valid<P3>, Valid<P4>, Valid<P5>, Valid<P6>)

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

source§

impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy> Valid<(P1, P2, P3, P4, P5, P6, P7)>

source

pub fn unzip( self ) -> (Valid<P1>, Valid<P2>, Valid<P3>, Valid<P4>, Valid<P5>, Valid<P6>, Valid<P7>)

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

source§

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

source

pub fn unzip( self ) -> (Valid<P1>, Valid<P2>, Valid<P3>, Valid<P4>, Valid<P5>, Valid<P6>, Valid<P7>, Valid<P8>)

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

source§

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

source

pub fn unzip( self ) -> (Valid<P1>, Valid<P2>, Valid<P3>, Valid<P4>, Valid<P5>, Valid<P6>, Valid<P7>, Valid<P8>, Valid<P9>)

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

source§

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

source

pub fn unzip( self ) -> (Valid<P1>, Valid<P2>, Valid<P3>, Valid<P4>, Valid<P5>, Valid<P6>, Valid<P7>, Valid<P8>, Valid<P9>, Valid<P10>)

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

source§

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

source

pub fn unzip( self ) -> (Valid<P1>, Valid<P2>, Valid<P3>, Valid<P4>, Valid<P5>, Valid<P6>, Valid<P7>, Valid<P8>, Valid<P9>, Valid<P10>, Valid<P11>)

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

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> Valid<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)>

source

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

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

source§

impl<P: Copy, const N: usize> Valid<Array<P, N>>

source

pub fn unzip(self) -> [Valid<P>; N]

A variation of unzip for a valid interface, that has the correct resolver type.

  • Payload: Unzipped to multiple interfaces.
  • Resolvers: The resolvers carry no information.
InterfaceIngressEgress
FwdHOption<Array<P, N>>Array<HOption<P>, N>
Bwd()Array<(), N>
source§

impl<P: Copy> Valid<P>

source

pub fn constant(value: P) -> Self

A constant signal.

  • Payload: Always valid.
  • Resolver: The resolver carries no information.
InterfaceEgress
FwdHOption<P>
Bwd()