Skip to main content

automation_structures/
lib.rs

1#![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
34/// Equality adapter for generic proof-facing carriers.
35pub mod value_eq;
36
37#[cfg(feature = "proof-api")]
38#[allow(dead_code)]
39/// Named-composition carriers and proof relations for verified consumers.
40pub mod compositions;
41#[cfg(not(feature = "proof-api"))]
42#[allow(dead_code)]
43mod compositions;
44
45#[cfg(feature = "proof-api")]
46#[allow(dead_code)]
47/// Connective owners and relations for verified consumers.
48pub mod connectives;
49#[cfg(not(feature = "proof-api"))]
50#[allow(dead_code)]
51mod connectives;
52
53#[cfg(feature = "proof-api")]
54#[allow(dead_code)]
55/// Retained cross-structure verification assemblies.
56pub mod integration;
57#[cfg(not(feature = "proof-api"))]
58#[allow(dead_code)]
59mod integration;
60
61#[cfg(feature = "proof-api")]
62#[allow(dead_code)]
63/// Execution-modality carriers and proof relations for verified consumers.
64pub mod modalities;
65#[cfg(not(feature = "proof-api"))]
66#[allow(dead_code)]
67mod modalities;
68
69#[cfg(feature = "proof-api")]
70#[allow(dead_code)]
71/// Primitive carriers and proof relations for verified consumers.
72pub 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};