#![no_std]
#![doc = include_str!("../README.md")]
#[cfg(feature = "alloc")]
extern crate alloc;
extern crate self as pipecircuit;
mod circuit;
mod codec;
mod continuation;
mod delay;
mod driver;
mod installation;
mod operation;
#[cfg(feature = "performance-evidence")]
pub mod performance_evidence;
mod pipe;
mod reactor;
mod roster;
mod route;
mod step_input;
#[cfg(feature = "storage")]
pub mod storage;
mod submission_policy;
mod switchboard;
mod synchronized_view;
mod timer;
pub mod transport;
mod value_wrapper;
pub use circuit::{Circuit, CircuitFlowOutcome, CircuitReactionOutcome, CircuitSendOutcome, flow};
pub use codec::{
EncodedByteCount, MessageDecoder, MessageEncoder, MessageFamily, OwnedMessage, PipeIn, PipeOut,
};
pub use continuation::{
CancelledContinuationCompletion, CancelledContinuationWork, ContinuationAdmission,
ContinuationArmMismatch, ContinuationArmOutcome, ContinuationArmRefusal,
ContinuationCancellationMismatch, ContinuationCancellationOutcome, ContinuationCompletion,
ContinuationFailure, ContinuationId, ContinuationReply, ContinuationResult,
ContinuationUnavailable, ContinuationWork, ContinuationWorkCancellationMismatch,
ContinuationWorkCancellationOutcome, Continued, Owed, TimeoutAfter,
};
#[cfg(feature = "storage")]
pub use continuation::{
ContinuationAdmissionOutcome, ContinuationExpiration, ContinuationExpirationOutcome,
ContinuationLedger, ContinuationLedgerCreationError, ContinuationLedgerCreationFailure,
ContinuationRefusalOutcome, ContinuationResolutionOutcome, ContinuationRetractionOutcome,
};
pub use delay::{After, Delayed};
#[cfg(feature = "storage")]
pub use delay::{
DelayAdmission, DelayAdmissionOutcome, DelayArmMismatch, DelayArmOutcome, DelayArmRefusal,
DelayLedger, DelayLedgerCreationError, DelayLedgerCreationFailure, DelayRefusalOutcome,
DelayReleaseOutcome, DelayUnavailable, DelayWithdrawalOutcome,
};
pub use driver::{
AdmissionFailure, AdmissionHandler, AdmittedPipeDriver, DriveFailure, FallibleAdmission,
IntakeAdmission, IntakeGate, NoActivation, PipeDriver, PipeOutputHandler, PipeSender,
ScopedSender,
};
pub use installation::{ConductionFailure, ConductionResult, Pipecircuit};
pub use operation::AtomicOperationOutcome;
pub use pipe::{InstalledPipe, NoInput, NoOutput, Pipe};
#[cfg(feature = "programs")]
pub use pipecircuit_macros::pipe_roster;
pub use reactor::Reactor;
pub use roster::{
BindingDescription, DeclarationLocation, DescribeBindings, DescribeRoster, PipeBinding,
PipeDescription, PipeRole, PipeRoster,
};
pub use route::{FlowFailure, PendingRoutes, Route};
pub use step_input::{StateMachine, StepInputOf};
pub use submission_policy::{InlineSubmission, SubmissionPolicy, SubmitWith};
pub use switchboard::Switchboard;
pub use synchronized_view::{
ApplySynchronizedViewChangeOutcome, ApplySynchronizedViewRevisionSpanOutcome,
ApplySynchronizedViewSnapshotOutcome, SynchronizedView, SynchronizedViewRead,
SynchronizedViewRevision, SynchronizedViewSnapshotRequiredReason,
};
pub use timer::{
ElapsedTimerTokens, EmptyElapsedTimerTokens, Timer, TimerArmDecision, TimerArmOutcome,
TimerArmRefusal, TimerCancellationDecision, TimerCancellationOutcome, TimerCancellationRefusal,
TimerIn, TimerOut, TimerToken, WakeAfter, WakePrecision,
};
#[doc(hidden)]
pub use transport::StepsPipeInputToOutput;
pub use transport::{DuplexTransport, Inline, ReceiveFromOutcome, TransportFrom, TransportTo};