Trait dialectic::types::Scoped[][src]

pub trait Scoped<N: Unary = Z>: IsSession { }

A session type is Scoped if none of its Continues refer to outside of the Loops which they are within.

💡 In general, you should prefer the Session trait to the Scoped trait, since Session also ensures that a given type is a valid session type and provides other functionality.

Implementors

impl<N: Unary> Scoped<N> for Done[src]

impl<N: Unary, Choices: Tuple + 'static> Scoped<N> for Choose<Choices> where
    Choices::AsList: EachScoped<N>, 
[src]

impl<N: Unary, Choices: Tuple + 'static> Scoped<N> for Offer<Choices> where
    Choices::AsList: EachScoped<N>, 
[src]

impl<N: Unary, M: Unary, const I: usize> Scoped<N> for Continue<I> where
    Number<I>: ToUnary<AsUnary = M>,
    M: LessThan<N>, 
[src]

impl<N: Unary, P: Scoped<S<N>>> Scoped<N> for Loop<P>[src]

impl<N: Unary, P: Scoped<N>, Q: Scoped<N>> Scoped<N> for Call<P, Q>[src]

impl<N: Unary, P: Scoped<N>, Q: Scoped<N>, R: Scoped<N>> Scoped<N> for Split<P, Q, R>[src]

impl<T: 'static, N: Unary, P: Scoped<N>> Scoped<N> for Recv<T, P>[src]

impl<T: 'static, N: Unary, P: Scoped<N>> Scoped<N> for Send<T, P>[src]

Loading content...