1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3mod r#async;
10mod backtrack;
11mod claims;
12mod close;
13mod condition;
14mod conditional;
15mod coroutine;
16mod generator;
17mod jobs;
18mod model;
19mod nonlocal;
20mod ops;
21mod policy;
22mod prompt;
23mod protected;
24mod restart;
25mod resume;
26mod runtime;
27mod unwind;
28
29pub use r#async::{AsyncPoll, AsyncTask};
30pub use backtrack::{BacktrackStep, Backtracker};
31pub use claims::{
32 control_op_keys, control_organ_symbol, publish_control_organ_claims,
33 publish_control_organ_claims_for_lib,
34};
35pub use close::{CloseGuard, run_with_close_guards};
36pub use condition::{Condition, ConditionHandler, ConditionStack, signal_condition};
37pub use conditional::IfForm;
38pub use coroutine::{Coroutine, CoroutineFrame, CoroutineFrameStep, CoroutineLane, CoroutineStep};
39pub use generator::{Generator, GeneratorStep};
40pub use jobs::{
41 AdmissionLimit, CheckpointError, CheckpointReceipt, DrainReceipt, JobId, JobQueues, JobReceipt,
42 JobStatus, RuntimeJobClass, WorkLimit,
43};
44pub use model::{ContinuationValue, ControlResultValue};
45pub use nonlocal::{LabeledPrompt, NonLocalExit, NonLocalExitKind, escape_to_label};
46pub use ops::{
47 ControlFunction, abort_symbol, capture_symbol, physical_sensing_trace_symbol, prompt_symbol,
48 resume_symbol,
49};
50pub use policy::{
51 OneShotControlPolicy, SegmentedControlPolicy, install_control_policy, one_shot_control_policy,
52 segmented_control_policy,
53};
54pub use prompt::{ControlPrompt, ControlTag, raise_prompt};
55pub use protected::{ProtectedOutcome, protected_call};
56pub use restart::{Restart, RestartStack, invoke_restart};
57pub use resume::{FrameError, FrameLimits, ResumableFrame, ResumePacket, ResumeResult, StepBudget};
58pub use runtime::{ControlLib, control_exports, install_control_lib, manifest_name};
59pub use unwind::{CleanupStack, Unwind};
60
61pub static RECIPES: sim_cookbook::EmbeddedDir =
63 include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
64
65#[cfg(test)]
66mod derivation_tests;
67
68#[cfg(test)]
69mod frame_tests;
70
71#[cfg(test)]
72mod organ_tests;
73
74#[cfg(test)]
75mod tests;