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

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

A session type is scoped for a given environment depth N if it Continues no more than N Loop levels above itself.

A session type is Scoped<Z> (which can be abbreviated Scoped) if it does not Continue to any loop above itself, i.e. all Continue<N> refer to a loop which they themselves are within.

Implementors

impl<N: Unary + Any, M: Unary + Any> Scoped<M> for Break<N> where
    N: LessThan<M>, 
[src]

A Break is well-Scoped if it refers to a loop that it is inside of.

impl<N: Unary + Any, M: Unary + Any> Scoped<M> for Continue<N> where
    N: LessThan<M>, 
[src]

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

impl<N: Unary, Choices: Tuple + Any> Scoped<N> for Choose<Choices> where
    Choices::AsList: EachScoped<N>,
    <Choices::AsList as EachSession>::Dual: List
[src]

impl<N: Unary, Choices: Tuple + Any> Scoped<N> for Offer<Choices> where
    Choices::AsList: EachScoped<N>,
    <Choices::AsList as EachSession>::Dual: List
[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 Split<P, Q>[src]

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

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

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

Loading content...