Role

Trait Role 

Source
pub trait Role: Sized + Send {
    type Dual: Role<Dual = Self>;
}
Available on crate feature mpst only.
Expand description

Trait for session types. Provides duality.

Required Associated Types§

Source

type Dual: Role<Dual = Self>

The Role type dual to Self.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so 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>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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