Skip to main content

automation_structures/
lib.rs

1//! Verified Rust objects for composing automation structures.
2//!
3//! The checked root API is intended for ordinary consumers. The catalog modules
4//! retain the proof-oriented carriers used by the formal correspondence suite.
5//!
6//! # Example
7//!
8//! ```rust
9//! use automation_structures::Budget;
10//!
11//! let mut budget = Budget::new(8);
12//! assert!(budget.try_reserve(3));
13//! budget.commit_reservation(3)?;
14//! assert_eq!(budget.available(), 5);
15//! # Ok::<(), automation_structures::BudgetError>(())
16//! ```
17
18#![deny(missing_docs)]
19
20mod api;
21mod composition_api;
22#[allow(dead_code, missing_docs)]
23mod compositions;
24mod connective_api;
25#[allow(dead_code, missing_docs)]
26mod connectives;
27mod execution_api;
28#[allow(dead_code, missing_docs)]
29mod integration;
30#[allow(dead_code, missing_docs)]
31mod modalities;
32#[allow(dead_code, missing_docs)]
33mod primitives;
34
35pub use api::{
36    ActuationError, ActuationPass, AuditRecord, AuditSink, BacktrackingBuildError,
37    BacktrackingError, BacktrackingTraversal, Budget, BudgetError, CompetitiveSelectionError,
38    CompetitiveSelectionHard, CompetitiveSelectionHardExclusive, CompetitiveSelectionRanked,
39    CompetitiveSelectionSoft, ConvergenceBuildError, ConvergenceError, ConvergenceGovernor,
40    ConvergencePhase, ConvergenceState, Cursor, CursorError, PropagationBuildError,
41    PropagationError, PropagationPass, PropagationRound, QualityHierarchy, QualityHierarchyError,
42    ResourceRegistry,
43};
44pub use composition_api::{
45    AllocationSnapshot, AllocationSnapshotError, Bisection, BisectionBuildError, BisectionError,
46    EquivalenceClass, EquivalenceClassError, FederatedBudget, RateLimit, RateLimitBuildError,
47    RateLimitError, Reduction, ReductionBuildError, ReductionError, RelationshipGraph,
48    RelationshipGraphError, Sampler, SamplerError, Signal, SignalBuildError, SignalError,
49    TraversalBuildError, TraversalEngine, TraversalError,
50};
51pub use connective_api::{
52    Accumulator, Buffer, Counter, Marker, projection_consistent, strictly_before,
53};
54pub use execution_api::{
55    ForkJoin, ForkJoinBuildError, ForkJoinPhase, Sequential, SequentialBuildError, StepGraph,
56    StepGraphBuildError, StepState, StreamGraph, StreamGraphBuildError, WorkerState,
57};