initSidebarItems({"mod":[["channels","Channels are implementations of `IO` which can be used when building `Session` and designing protocols."],["peano","Peano numbers are natural numbers expressed as successions of zero. We use them in our API to provide \"nested\" protocol escaping, as you must indicate the number of layers you wish to escape from."],["session_types","Session types encode the current state of a communication channel. It is not possible to change to another state without following the protocol."]],"struct":[["Chan","Channels are provided to handlers to act as a \"courier\" for the session type and a guard for the IO backend."],["Defer","Handlers must return `Defer` to indicate to the `Session` how to proceed in the future. `Defer` can be obtained by calling `.defer()` on the channel, or by calling `.close()` when the session is `End`."],["Session","`Session`s are containers of channels which store the current session type internally through a function pointer to a concrete handler."]],"trait":[["Handler","`Handler` is implemented on `Protocol` for every session type you expect to defer, including the initial state."],["IO","This trait describes a backend for a channel to expose a message passing interface."],["Protocol","A `Protocol` describes the underlying protocol, including the \"initial\" session type. `Handler`s are defined over concrete `Protocol`s to implement the behavior of a protocol in a given `SessionType`."]]});