[][src]Crate ferrite_session

Re-exports

pub use EitherChoice::Left;
pub use EitherChoice::Right;

Modules

base
identity
macros
nat
row
type_app

Macros

HList
Sum
acquire_shared_session
case
choose
cut
define_choice
define_choice_enum
define_choice_labels
define_choice_protocol
define_extract_choice
include_session
match_choice
match_choice_value
match_extract
offer_case
offer_choice
receive_channel
receive_channel_from
receive_channels
receive_value
receive_value_from
send_value
send_value_to
terminate
wait
wait_all

Structs

Applied
AppliedSum
ChoiceSelector
Const
ElimConst
Empty
End
ExternalChoice
InternalChoice
LinearToShared
Merge
PartialSession
PersistentSession
Rec
ReceiveChannel
ReceiveValue
ReceiverF
S
SendChannel
SendValue
SenderF
SharedChannel
SharedSession
SharedToLinear
Unfix
Wrap
Z

Enums

AllLeft
AllRight
Bottom
EitherChoice
L
R
Sum

Constants

LeftLabel
RightLabel

Traits

AppendContext
Applicative
Context

A list of context for input. It has multiple implementations including crate::base::Context.

ContextLens
Cut
ElimField
ElimSum
EmptyContext

An ordered linked list of context.

ExtractRow
Functor
HasRecApp
HasRow
HasRowWitness
HasTypeApp
InjectLift
IntersectSum
Monad
Nat
NaturalTransformation
Prism
Protocol
RecApp
Reversible
RowApp
RowCon
RowWitnessCont
RunCont
SharedProtocol
Slot
SplitRow
SumFunctor
SumFunctorInject
TyCon
TypeApp
TypeAppCont
TypeAppGeneric
TypeAppWitness
TypeAppWitnessCont
UncloakRow
Wrapper

Functions

absurd
accept_shared_session
acquire_shared_session
append_emtpy_slot
apply_channel
case
choose
cloak_applied
cloak_row
clone_session
create_persistent_session
cut
cut_append
detach_shared_session
extract
fix
fix_session
fork
forward
get_applied
get_row
include_session
join_sessions
lift_sum_inject
new_session
offer_case
offer_choice
partial_session
partial_session_1
partial_session_2
receive_channel
receive_channel_from
receive_channel_from_slot
receive_channel_slot
receive_value
receive_value_from
release_shared_session
run_cont
run_session
run_session_with_result
run_shared_session
send_channel_from
send_channel_to
send_value
send_value_to
session
session_1
session_2
step
succ
succ_session
terminate
terminate_async
terminate_nil
unfix
unfix_session
unfix_session_for
unwrap_session
wait
wait_async
wait_session
wait_sessions
with_applied
wrap_session

Type Definitions

Either
EitherRow
Session

A session builder is a consumer for the given list of input context and output a protocol with given Out type.