1#![no_std]
25#![forbid(unsafe_code)]
26
27#[cfg(feature = "alloc")]
28extern crate alloc;
29
30#[cfg(feature = "std")]
31extern crate std;
32
33pub mod types;
35pub mod residual;
36pub mod envelope;
37pub mod grammar;
38pub mod integration;
39
40#[cfg(feature = "alloc")]
42pub mod events;
43#[cfg(feature = "alloc")]
44pub mod oilwell;
45#[cfg(feature = "alloc")]
46pub mod pipeline;
47#[cfg(feature = "alloc")]
48pub mod subsea;
49#[cfg(feature = "alloc")]
50pub mod drilling;
51#[cfg(feature = "alloc")]
52pub mod drilling_real;
53#[cfg(feature = "alloc")]
54pub mod rotating;
55#[cfg(feature = "alloc")]
56pub mod rotating_real;
57#[cfg(feature = "alloc")]
58pub mod report;
59
60#[cfg(feature = "std")]
62pub mod loaders;
63#[cfg(feature = "std")]
64pub mod error;
65#[cfg(feature = "std")]
66pub mod figure_pipeline;
67#[cfg(feature = "std")]
68pub mod figure_traces;
69
70#[cfg(kani)]
72mod kani_proofs;
73
74pub use types::{AdmissibilityEnvelope, GrammarState, ReasonCode, ResidualTriple};
76pub use residual::SlewEstimator;
77pub use envelope::{evaluate, CoordClass, EnvelopeEval};
78pub use grammar::GrammarClassifier;
79pub use integration::NonIntrusiveGuarantee;
80
81#[cfg(feature = "alloc")]
83pub use types::{AnnotatedStep, DsfbDomainFrame, Episode, EpisodeSummary, ResidualSample};
84#[cfg(feature = "alloc")]
85pub use residual::{DriftEstimator, ResidualProcessor};
86#[cfg(feature = "alloc")]
87pub use grammar::{DeterministicDsfb, DsfbEngine};
88#[cfg(feature = "alloc")]
89pub use integration::{deterministic_replay, process_read_only, ReadOnlySlice};
90#[cfg(feature = "alloc")]
91pub use events::{aggregate_episodes, episodes_to_csv, summarise};
92#[cfg(feature = "alloc")]
93pub use report::{format_episodes_table, format_summary, noise_compression_ratio};
94#[cfg(feature = "alloc")]
95pub use oilwell::OilwellFrame;
96#[cfg(feature = "alloc")]
97pub use pipeline::PipelineFrame;
98#[cfg(feature = "alloc")]
99pub use subsea::SubseaFrame;
100#[cfg(feature = "alloc")]
101pub use drilling::DrillingFrame;
102#[cfg(feature = "alloc")]
103pub use drilling_real::VolveFrame;
104#[cfg(feature = "alloc")]
105pub use rotating::RotatingFrame;
106#[cfg(feature = "alloc")]
107pub use rotating_real::EspFrame;
108
109#[cfg(feature = "std")]
111pub use loaders::{load_drilling_csv, load_esp_csv, load_oilwell_csv, load_pipeline_csv, load_rotating_csv, load_subsea_csv, load_volve_csv};
112#[cfg(feature = "std")]
113pub use error::DsfbError;
114#[cfg(feature = "std")]
115pub use figure_pipeline::{generate_all_figures, FigureGenerationResult};
116#[cfg(feature = "std")]
117pub use figure_traces::{export_grammar_traces, GrammarTraceExport};