Struct dialectic::types::Offer [−][src]
Passively offer!
a choice between any of the protocols in the tuple Choices
.
At most 128 choices can be offered in a single Offer
type; to supply more options, nest
Offer
s within each other.
Trait Implementations
impl<Choices: 'static> Actionable for Offer<Choices>
[src]
type NextAction = Self
impl<Choices: Clone> Clone for Offer<Choices>
[src]
impl<Choices: Copy> Copy for Offer<Choices>
[src]
impl<Choices: Debug> Debug for Offer<Choices>
[src]
impl<Choices: Default> Default for Offer<Choices>
[src]
impl<Choices: Eq> Eq for Offer<Choices>
[src]
impl<Choices: Any> HasDual for Offer<Choices> where
Choices: Tuple,
Choices::AsList: EachHasDual,
<Choices::AsList as EachHasDual>::Duals: List + EachHasDual,
[src]
Choices: Tuple,
Choices::AsList: EachHasDual,
<Choices::AsList as EachHasDual>::Duals: List + EachHasDual,
type DualSession = Choose<<<Choices::AsList as EachHasDual>::Duals as List>::AsTuple>
The dual to this session type, i.e. the session type required of the other end of the channel. Read more
impl<Choices: Hash> Hash for Offer<Choices>
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<N: Unary, Level: Unary, Choices> Lift<N, Level> for Offer<Choices> where
Choices: Tuple + 'static,
Choices::AsList: EachLift<N, Level>,
<Choices::AsList as EachLift<N, Level>>::Lifted: List,
[src]
Choices: Tuple + 'static,
Choices::AsList: EachLift<N, Level>,
<Choices::AsList as EachLift<N, Level>>::Lifted: List,
type Lifted = Offer<<<Choices::AsList as EachLift<N, Level>>::Lifted as List>::AsTuple>
The result of the lifting operation.
impl<Choices: Ord> Ord for Offer<Choices>
[src]
fn cmp(&self, other: &Offer<Choices>) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl<Choices: PartialEq> PartialEq<Offer<Choices>> for Offer<Choices>
[src]
impl<Choices: PartialOrd> PartialOrd<Offer<Choices>> for Offer<Choices>
[src]
fn partial_cmp(&self, other: &Offer<Choices>) -> Option<Ordering>
[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl<N: Unary, Choices: Tuple + 'static> Scoped<N> for Offer<Choices> where
Choices::AsList: EachScoped<N>,
[src]
Choices::AsList: EachScoped<N>,
impl<Choices> StructuralEq for Offer<Choices>
[src]
impl<Choices> StructuralPartialEq for Offer<Choices>
[src]
impl<N: Unary, P, Choices> Subst<P, N> for Offer<Choices> where
Choices: Tuple + 'static,
Choices::AsList: EachSubst<P, N>,
<Choices::AsList as EachSubst<P, N>>::Substituted: List,
[src]
Choices: Tuple + 'static,
Choices::AsList: EachSubst<P, N>,
<Choices::AsList as EachSubst<P, N>>::Substituted: List,
type Substituted = Offer<<<Choices::AsList as EachSubst<P, N>>::Substituted as List>::AsTuple>
The result of the substitution.
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,
Auto Trait Implementations
impl<Choices> RefUnwindSafe for Offer<Choices> where
Choices: RefUnwindSafe,
Choices: RefUnwindSafe,
impl<Choices> Send for Offer<Choices> where
Choices: Send,
Choices: Send,
impl<Choices> Sync for Offer<Choices> where
Choices: Sync,
Choices: Sync,
impl<Choices> Unpin for Offer<Choices> where
Choices: Unpin,
Choices: Unpin,
impl<Choices> UnwindSafe for Offer<Choices> where
Choices: UnwindSafe,
Choices: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<'a, T, S> As<'a, Val, T> for S where
S: Into<T>,
[src]
S: Into<T>,
pub fn as_convention(this: S) -> T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<'a, T> By<'a, Mut> for T where
T: 'a,
[src]
T: 'a,
impl<'a, T> By<'a, Ref> for T where
T: 'a,
[src]
T: 'a,
impl<'a, T> By<'a, Val> for T
[src]
type Type = T
The type of Self
when called by Convention
.
impl<'a, T> Convert<'a, Mut, Mut> for T where
T: 'a,
[src]
T: 'a,
impl<'a, T> Convert<'a, Mut, Ref> for T where
T: 'a,
[src]
T: 'a,
impl<'a, T> Convert<'a, Mut, Val> for T where
T: 'a + Clone,
[src]
T: 'a + Clone,
impl<'a, T> Convert<'a, Ref, Ref> for T where
T: 'a,
[src]
T: 'a,
impl<'a, T> Convert<'a, Ref, Val> for T where
T: 'a + Clone,
[src]
T: 'a + Clone,
impl<'a, T> Convert<'a, Val, Val> for T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,