Trait lunatic::protocol::HasDual

source ·
pub trait HasDual: Sealed {
    type Dual: HasDual;
}
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 session-types.

Required Associated Types§

Implementors§

source§

impl HasDual for End

§

type Dual = End

source§

impl HasDual for Pop

§

type Dual = Pop

source§

impl HasDual for TaskEnd

source§

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

§

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

source§

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

§

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

source§

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

§

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

source§

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

§

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

source§

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

§

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