Trait mpstthree::role::Role

source ·
pub trait Role: Sized + Send {
    type Dual: Role<Dual = Self>;
}
Expand description

Trait for session types. Provides duality.

Required Associated Types§

source

type Dual: Role<Dual = Self>

The Role type dual to Self.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Role for RoleBroadcast

source§

impl Role for RoleEnd

source§

impl<R1: Role, R2: Role> Role for RoleAtoAll<R1, R2>

§

type Dual = RoleAlltoA<<R1 as Role>::Dual, <R2 as Role>::Dual>

source§

impl<R1: Role, R2: Role> Role for RoleAlltoA<R1, R2>

§

type Dual = RoleAtoAll<<R1 as Role>::Dual, <R2 as Role>::Dual>

source§

impl<R1: Role, R2: Role> Role for RoleAlltoB<R1, R2>

§

type Dual = RoleBtoAll<<R1 as Role>::Dual, <R2 as Role>::Dual>

source§

impl<R1: Role, R2: Role> Role for RoleAlltoC<R1, R2>

§

type Dual = RoleCtoAll<<R1 as Role>::Dual, <R2 as Role>::Dual>

source§

impl<R1: Role, R2: Role> Role for RoleBtoAll<R1, R2>

§

type Dual = RoleAlltoB<<R1 as Role>::Dual, <R2 as Role>::Dual>

source§

impl<R1: Role, R2: Role> Role for RoleCtoAll<R1, R2>

§

type Dual = RoleAlltoC<<R1 as Role>::Dual, <R2 as Role>::Dual>

source§

impl<R: Role> Role for RoleA<R>

§

type Dual = RoleADual<<R as Role>::Dual>

source§

impl<R: Role> Role for RoleADual<R>

§

type Dual = RoleA<<R as Role>::Dual>

source§

impl<R: Role> Role for RoleB<R>

§

type Dual = RoleBDual<<R as Role>::Dual>

source§

impl<R: Role> Role for RoleBDual<R>

§

type Dual = RoleB<<R as Role>::Dual>

source§

impl<R: Role> Role for RoleC<R>

§

type Dual = RoleCDual<<R as Role>::Dual>

source§

impl<R: Role> Role for RoleCDual<R>

§

type Dual = RoleC<<R as Role>::Dual>