1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3mod r#async;
20mod backtrack;
21mod claims;
22mod close;
23mod condition;
24mod conditional;
25mod coroutine;
26mod exception;
27mod generator;
28mod jobs;
29mod matching;
30mod model;
31mod nonlocal;
32mod ops;
33mod policy;
34mod prompt;
35mod protected;
36mod restart;
37mod resume;
38mod runtime;
39mod unwind;
40
41#[cfg(test)]
42mod exception_ownership_guard {
43 include!("../tests/exceptions3_carrier_ownership.rs");
44}
45
46pub use r#async::{AsyncPoll, AsyncTask};
47pub use backtrack::{BacktrackStep, Backtracker};
48pub use claims::{
49 control_op_keys, control_organ_symbol, publish_control_organ_claims,
50 publish_control_organ_claims_for_lib,
51};
52pub use close::{CloseGuard, run_with_close_guards};
53pub use condition::{Condition, ConditionHandler, ConditionStack, signal_condition};
54pub use conditional::IfForm;
55pub use coroutine::{Coroutine, CoroutineFrame, CoroutineFrameStep, CoroutineLane, CoroutineStep};
56pub use exception::{
57 ExceptionGraphBudget, ExceptionGraphEdge, ExceptionGraphView, ManagedException,
58};
59pub use generator::{Generator, GeneratorStep};
60pub use jobs::{
61 AdmissionLimit, CheckpointError, CheckpointReceipt, DrainReceipt, JobId, JobQueues, JobReceipt,
62 JobStatus, RuntimeJobClass, WorkLimit,
63};
64pub use matching::BoundedSubclassOutcome;
65pub use matching::{ClassMatchBudget, ClassMatchEvidence, ClassMatchOutcome, match_raised_class};
66pub use model::{
67 ContinuationValue, ControlResultValue, RAISED_SYMBOL, Raised, RaisedBrowseBudget,
68 RaisedBrowseProjection, RaisedShape,
69};
70pub use nonlocal::{LabeledPrompt, NonLocalExit, NonLocalExitKind, escape_to_label};
71pub use ops::{
72 ControlFunction, abort_symbol, capture_symbol, physical_sensing_trace_symbol, prompt_symbol,
73 resume_symbol,
74};
75pub use policy::{
76 OneShotControlPolicy, SegmentedControlPolicy, install_control_policy, one_shot_control_policy,
77 segmented_control_policy,
78};
79pub use prompt::{ControlPrompt, ControlTag, raise_prompt};
80pub use protected::{ProtectedOutcome, protected_call, protected_call_with};
81pub use restart::{Restart, RestartStack, invoke_restart};
82pub use resume::{FrameError, FrameLimits, ResumableFrame, ResumePacket, ResumeResult, StepBudget};
83pub use runtime::{ControlLib, control_exports, install_control_lib, manifest_name};
84pub use unwind::{CleanupStack, Unwind};
85
86pub type RaisedUnwind<R, B, C> = Unwind<R, B, C, Raised>;
88pub type RaisedProtectedOutcome = ProtectedOutcome<Raised>;
90pub type RaisedCondition = Condition<Raised>;
92pub type RaisedResumePacket<T> = ResumePacket<T, Raised>;
94pub type RaisedResumeResult<T, R> = ResumeResult<T, R, Raised>;
96
97pub static RECIPES: sim_cookbook::EmbeddedDir =
99 include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
100
101#[cfg(test)]
102mod derivation_tests;
103
104#[cfg(test)]
105mod frame_tests;
106
107#[cfg(test)]
108mod organ_tests;
109
110#[cfg(test)]
111mod tests;