Trait HasDual

Source
pub trait HasDual: Sealed {
    type Dual;
}
Expand description

The HasDual trait defines the dual relationship between protocols.

Any valid protocol has a corresponding dual.

This trait is sealed and cannot be implemented outside of session-types

Required Associated Types§

Implementors§

Source§

impl HasDual for Eps

Source§

impl HasDual for Var<Z>

Source§

impl<A, P: HasDual> HasDual for Recv<A, P>

Source§

type Dual = Send<A, <P as HasDual>::Dual>

Source§

impl<A, P: HasDual> HasDual for Send<A, P>

Source§

type Dual = Recv<A, <P as HasDual>::Dual>

Source§

impl<N> HasDual for Var<S<N>>

Source§

type Dual = Var<S<N>>

Source§

impl<P: HasDual> HasDual for Rec<P>

Source§

type Dual = Rec<<P as HasDual>::Dual>

Source§

impl<P: HasDual, Q: HasDual> HasDual for Choose<P, Q>

Source§

type Dual = Offer<<P as HasDual>::Dual, <Q as HasDual>::Dual>

Source§

impl<P: HasDual, Q: HasDual> HasDual for Offer<P, Q>

Source§

type Dual = Choose<<P as HasDual>::Dual, <Q as HasDual>::Dual>