Type Alias hazardflow_designs::std::valid_ready::Vr
source · pub type Vr<P, const D: Dep = { Dep::Helpful }> = I<VrH<P>, D>;
Expand description
Valid-ready interface.
Interface::Fwd
=HOption<P>
Interface::Bwd
=Ready<()>
Aliased Type§
struct Vr<P, const D: Dep = { Dep::Helpful }> { /* private fields */ }
Implementations§
source§impl<P: Copy, const N: usize> Vr<(P, BoundedU<N>)>
impl<P: Copy, const N: usize> Vr<(P, BoundedU<N>)>
sourcepub fn branch(self) -> [Vr<P>; N]
pub fn branch(self) -> [Vr<P>; N]
A variation of branch
for a valid-ready interface, that has the correct resolver type.
- Payload: Only the selected interface’s payload will be valid.
- Resolvers: The ingress ready signal follows the selected interface’s ready signal. If the selector is not valid, the ingress ready signal is true.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<P> | Array<HOption<P>, N> |
Bwd | Ready<()> | Array<Ready<()>, N> |
source§impl<P: Copy, const D: Dep> Vr<P, D>
impl<P: Copy, const D: Dep> Vr<P, D>
sourcepub fn lfork(self) -> (Vr<P, D>, Vr<P, D>)
pub fn lfork(self) -> (Vr<P, D>, Vr<P, D>)
A variation of lfork
for a valid-ready interface, that has the correct resolver type.
- Payload: All the egress payloads become available at once when all the egress ready signals are true. The
payload value
P
is duplicated to mulitple interfaces. - Resolvers: The ingress ready signal is true if all the egress ready signals are true.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<P> | (HOption<P>, HOption<P>) |
Bwd | Ready<()> | (Ready<()>, Ready<()>) |
source§impl<P: Copy, const D: Dep> Vr<P, D>
impl<P: Copy, const D: Dep> Vr<P, D>
sourcepub fn fork_some(self) -> (Vr<P, { Dep::Demanding }>, Vr<P, { Dep::Demanding }>)
pub fn fork_some(self) -> (Vr<P, { Dep::Demanding }>, Vr<P, { Dep::Demanding }>)
A variation of fork_some
for a valid-ready interface, that has the correct resolver type.
- Payload: Each egress payload becomes available when its own egress ready signal is true. The payload value
P
is duplicated to multiple interfaces. - Resolvers: The ingress ready signal is true if any of the egress ready signals are true.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<P> | (HOption<P>, HOption<P>) |
Bwd | Ready<()> | (Ready<()>, Ready<()>) |
source§impl<P1: Copy, P2: Copy, const D: Dep> Vr<(P1, P2), D>
impl<P1: Copy, P2: Copy, const D: Dep> Vr<(P1, P2), D>
sourcepub fn unzip(self) -> (Vr<P1, D>, Vr<P2, D>)
pub fn unzip(self) -> (Vr<P1, D>, Vr<P2, D>)
A variation of unzip
for a valid-ready interface, that has the correct resolver type.
- Payload: Unzipped to multiple interfaces, and all the egress payloads become available at once when all the egress ready signals are true.
- Resolvers: The ingress ready signal is true if all the egress ready signals are true.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<(P1, P2)> | (HOption<P1>, HOption<P2>) |
Bwd | Ready<()> | (Ready<()>, Ready<()>) |
source§impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5), D>
source§impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6), D>
source§impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7), D>
sourcepub fn unzip(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>)
pub fn unzip( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>)
A variation of unzip
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8), D>
sourcepub fn unzip(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>)
pub fn unzip( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>)
A variation of unzip
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, P9: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9), D>
sourcepub fn unzip(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>)
pub fn unzip( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>)
A variation of unzip
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, P9: Copy, P10: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10), D>
sourcepub fn unzip(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>)
pub fn unzip( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>)
A variation of unzip
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, P9: Copy, P10: Copy, P11: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11), D>
sourcepub fn unzip(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>, Vr<P11, { Dep::Demanding }>)
pub fn unzip( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>, Vr<P11, { Dep::Demanding }>)
A variation of unzip
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12), D>
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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12), D>
sourcepub fn unzip(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>, Vr<P11, { Dep::Demanding }>, Vr<P12, { Dep::Demanding }>)
pub fn unzip( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>, Vr<P11, { Dep::Demanding }>, Vr<P12, { Dep::Demanding }>)
A variation of unzip
to 3-12 valid-ready interfaces. See the 2-tuple version for more information.
source§impl<P: Copy, const N: usize, const D: Dep> Vr<Array<P, N>, D>
impl<P: Copy, const N: usize, const D: Dep> Vr<Array<P, N>, D>
sourcepub fn unzip(self) -> [Vr<P, { Dep::Demanding }>; N]
pub fn unzip(self) -> [Vr<P, { Dep::Demanding }>; N]
A variation of unzip
for a valid-ready interface, that has the correct resolver type.
- Payload: Unzipped to multiple interfaces, and all the egress payloads become available at once when all the egress ready signals are true.
- Resolvers: The ingress ready signal is true if all the egress ready signals are true.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<Array<P, N>> | Array<HOption<P>, N> |
Bwd | Ready<()> | Array<Ready<()>, N> |
source§impl<P1: Copy, P2: Copy, const D: Dep> Vr<(P1, P2), D>
impl<P1: Copy, P2: Copy, const D: Dep> Vr<(P1, P2), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>)
A variation of unzip_some
for a valid-ready interface, that has the correct resolver type.
- Payload: Unzipped to multiple interfaces, and each egress payload becomes available when its own egress ready signal is true.
- Resolvers: The ingress ready signal is true if any of the egress ready signals are true.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<(P1, P2)> | (HOption<P1>, HOption<P2>) |
Bwd | Ready<()> | (Ready<()>, Ready<()>) |
source§impl<P1: Copy, P2: Copy, P3: Copy, const D: Dep> Vr<(P1, P2, P3), D>
impl<P1: Copy, P2: Copy, P3: Copy, const D: Dep> Vr<(P1, P2, P3), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>)
A variation of unzip_some
to 3-12 valid-ready interfaces. See the 2-tuple version for more
information.
source§impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, const D: Dep> Vr<(P1, P2, P3, P4), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, const D: Dep> Vr<(P1, P2, P3, P4), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>)
A variation of unzip_some
to 3-12 valid-ready interfaces. See the 2-tuple version for more
information.
source§impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>)
A variation of unzip_some
to 3-12 valid-ready interfaces. See the 2-tuple version for more
information.
source§impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>)
A variation of unzip_some
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>)
A variation of unzip_some
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>)
A variation of unzip_some
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, P9: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>)
A variation of unzip_some
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, P9: Copy, P10: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>)
A variation of unzip_some
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11), D>
impl<P1: Copy, P2: Copy, P3: Copy, P4: Copy, P5: Copy, P6: Copy, P7: Copy, P8: Copy, P9: Copy, P10: Copy, P11: Copy, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>, Vr<P11, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>, Vr<P11, { Dep::Demanding }>)
A variation of unzip_some
to 3-12 valid-ready 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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12), D>
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, const D: Dep> Vr<(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12), D>
sourcepub fn unzip_some(
self
) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>, Vr<P11, { Dep::Demanding }>, Vr<P12, { Dep::Demanding }>)
pub fn unzip_some( self ) -> (Vr<P1, { Dep::Demanding }>, Vr<P2, { Dep::Demanding }>, Vr<P3, { Dep::Demanding }>, Vr<P4, { Dep::Demanding }>, Vr<P5, { Dep::Demanding }>, Vr<P6, { Dep::Demanding }>, Vr<P7, { Dep::Demanding }>, Vr<P8, { Dep::Demanding }>, Vr<P9, { Dep::Demanding }>, Vr<P10, { Dep::Demanding }>, Vr<P11, { Dep::Demanding }>, Vr<P12, { Dep::Demanding }>)
A variation of unzip_some
to 3-12 valid-ready interfaces. See the 2-tuple version for more
information.
source§impl<P: Copy, const N: usize, const D: Dep> Vr<Array<P, N>, D>
impl<P: Copy, const N: usize, const D: Dep> Vr<Array<P, N>, D>
sourcepub fn unzip_some(self) -> [Vr<P, { Dep::Demanding }>; N]
pub fn unzip_some(self) -> [Vr<P, { Dep::Demanding }>; N]
A variation of unzip_some
for a valid-ready interface, that has the correct resolver type.
- Payload: Unzipped to multiple interfaces, and each egress payload becomes available when its own egress ready signal is true.
- Resolvers: The ingress ready signal is true if any of the egress ready signals are true.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<Array<P, N>> | Array<HOption<P>, N> |
Bwd | Ready<()> | Array<Ready<()>, N> |
source§impl<P: Copy, const D: Dep> Vr<P, D>
impl<P: Copy, const D: Dep> Vr<P, D>
sourcepub fn reg_fwd_ready(self) -> Vr<P>
pub fn reg_fwd_ready(self) -> Vr<P>
A register that is enabled only if the egress ready signal is true.
- Payload: Outputs the stored payload.
- Resolver: Preserved.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<P> | HOption<P> |
Bwd | Ready<()> | Ready<()> |
sourcepub fn reg_bwd(self) -> Vr<P>
pub fn reg_bwd(self) -> Vr<P>
A backward register for the resolver ready signal.
- Payload: Preserved.
- Resolver: The egress ready signal is stored, and outputted after 1 cycle.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<P> | HOption<P> |
Bwd | Ready<()> | Ready<()> |
sourcepub fn reg_bwd_drop(self) -> Vr<P>
pub fn reg_bwd_drop(self) -> Vr<P>
A backward register for the resolver ready signal that drops the payload if the stored ready signal is false.
- Payload: Dropped if the stored ready signal is false.
- Resolver: The egress ready signal is stored, and outputted after 1 cycle.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<P> | HOption<P> |
Bwd | Ready<()> | Ready<()> |
source§impl<P: Copy> Vr<P>
impl<P: Copy> Vr<P>
sourcepub fn block_into_hazard_vr<EH: Hazard<P = P>>(
self
) -> I<EH, { Dep::Demanding }>
pub fn block_into_hazard_vr<EH: Hazard<P = P>>( self ) -> I<EH, { Dep::Demanding }>
A variation of I::block_into_hazard
for a valid-ready interface that drops the resolver.
- Payload: Preserved.
- Resolver: The ingress ready signal will be turned off to block ingress transfers if the egress ready condition
EH::ready
is false. The egress resolverEH::R
is dropped.
Interface | Ingress | Egress |
---|---|---|
Fwd | HOption<P> | HOption<P> |
Bwd | Ready<()> | EH::R |