automation_structures/
lib.rs1#![doc = include_str!("../README.md")]
2#![deny(missing_docs)]
3#![deny(rustdoc::all)]
4
5macro_rules! impl_public_error {
6 ($type:ty, { $($variant:path => $message:literal),+ $(,)? }) => {
7 impl core::fmt::Display for $type {
8 fn fmt(&self, formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
9 formatter.write_str(match self { $($variant => $message),+ })
10 }
11 }
12
13 impl std::error::Error for $type {}
14 };
15}
16
17macro_rules! impl_observational_debug {
18 ($type:ty, $name:literal, $($field:literal => $method:ident),+ $(,)?) => {
19 impl core::fmt::Debug for $type {
20 fn fmt(&self, formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21 let mut state = formatter.debug_struct($name);
22 $(state.field($field, &self.$method());)+
23 state.finish()
24 }
25 }
26 };
27}
28
29mod api;
30mod composition_api;
31mod connective_api;
32mod execution_api;
33
34pub mod value_eq;
36
37#[cfg(feature = "proof-api")]
38#[allow(dead_code)]
39pub mod compositions;
41#[cfg(not(feature = "proof-api"))]
42#[allow(dead_code)]
43mod compositions;
44
45#[cfg(feature = "proof-api")]
46#[allow(dead_code)]
47pub mod connectives;
49#[cfg(not(feature = "proof-api"))]
50#[allow(dead_code)]
51mod connectives;
52
53#[cfg(feature = "proof-api")]
54#[allow(dead_code)]
55pub mod integration;
57#[cfg(not(feature = "proof-api"))]
58#[allow(dead_code)]
59mod integration;
60
61#[cfg(feature = "proof-api")]
62#[allow(dead_code)]
63pub mod modalities;
65#[cfg(not(feature = "proof-api"))]
66#[allow(dead_code)]
67mod modalities;
68
69#[cfg(feature = "proof-api")]
70#[allow(dead_code)]
71pub mod primitives;
73#[cfg(not(feature = "proof-api"))]
74#[allow(dead_code)]
75mod primitives;
76
77pub use api::{
78 ActuationError, ActuationPass, AuditRecord, AuditSink, BacktrackingBuildError,
79 BacktrackingError, BacktrackingTraversal, Budget, BudgetError, CompetitiveSelectionError,
80 CompetitiveSelectionHard, CompetitiveSelectionHardExclusive, CompetitiveSelectionRanked,
81 CompetitiveSelectionSoft, ConvergenceBuildError, ConvergenceError, ConvergenceGovernor,
82 ConvergencePhase, ConvergenceState, Cursor, CursorError, PropagationBuildError,
83 PropagationError, PropagationPass, PropagationRound, QualityHierarchy, QualityHierarchyError,
84 ResourceRegistry,
85};
86pub use composition_api::{
87 AllocationSnapshot, AllocationSnapshotError, Bisection, BisectionBuildError, BisectionError,
88 EquivalenceClass, EquivalenceClassError, FederatedBudget, RateLimit, RateLimitBuildError,
89 RateLimitError, Reduction, ReductionBuildError, ReductionError, RelationshipGraph,
90 RelationshipGraphError, Sampler, SamplerError, SelectThenActuate, SelectThenActuateBuildError,
91 SelectThenActuateError, Signal, SignalBuildError, SignalError, TraversalBuildError,
92 TraversalEngine, TraversalError,
93};
94pub use connective_api::{
95 Accumulator, Buffer, Counter, Marker, projection_consistent, strictly_before,
96};
97pub use execution_api::{
98 ForkJoin, ForkJoinBuildError, ForkJoinPhase, Sequential, SequentialBuildError, StepGraph,
99 StepGraphBuildError, StepState, StreamGraph, StreamGraphBuildError, WorkerState,
100};