Trait dialectic::types::Then [−][src]
Substitute P
for every Done
in Self
, thus concatenating the session P
to Self
.
This does not require P
to be a closed session type; it is reasonable to use open session
types (those with Continue
s that refer outside of themselves) as P
. Then
is careful to
adjust the indices of such open types so that they refer correctly outside of Self
even when
Self
contains Loop
s.
Associated Types
Loading content...Implementors
impl<N: Unary, P, Choices> Then<P, N> for Choose<Choices> where
Choices: Tuple + 'static,
Choices::AsList: EachThen<P, N>,
<Choices::AsList as EachThen<P, N>>::Combined: List,
[src]
Choices: Tuple + 'static,
Choices::AsList: EachThen<P, N>,
<Choices::AsList as EachThen<P, N>>::Combined: List,
impl<N: Unary, P, Choices> Then<P, N> for Offer<Choices> where
Choices: Tuple + 'static,
Choices::AsList: EachThen<P, N>,
<Choices::AsList as EachThen<P, N>>::Combined: List,
[src]
Choices: Tuple + 'static,
Choices::AsList: EachThen<P, N>,
<Choices::AsList as EachThen<P, N>>::Combined: List,
impl<N: Unary, P: 'static, Q: 'static, R: Then<S, N>, S> Then<S, N> for Split<P, Q, R>
[src]
impl<N: Unary, P: 'static, Q: Then<R, N>, R> Then<R, N> for Call<P, Q>
[src]
impl<N: Unary, T: 'static, P: Then<Q, N>, Q> Then<Q, N> for Recv<T, P>
[src]
impl<N: Unary, T: 'static, P: Then<Q, N>, Q> Then<Q, N> for Send<T, P>
[src]
impl<P, N: Unary> Then<P, N> for Done where
P: Lift<N>,
[src]
P: Lift<N>,
impl<P, N: Unary, const I: usize> Then<P, N> for Continue<I>
[src]
impl<P, Q, N: Unary> Then<Q, N> for Loop<P> where
P: Then<Q, S<N>>,
[src]
P: Then<Q, S<N>>,