#![cfg_attr(not(feature = "std"), no_std)]
#![forbid(unsafe_code)]
#![deny(missing_docs)]
#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used))]
#[cfg(test)]
extern crate std;
pub mod event;
pub mod fixed;
pub mod grammar;
pub mod hash;
pub mod motif;
pub mod verdict;
#[cfg(feature = "std")]
pub mod bank;
#[cfg(feature = "std")]
pub mod candidate;
#[cfg(feature = "std")]
pub mod casefile;
#[cfg(feature = "std")]
pub mod casefile_v2;
#[cfg(feature = "std")]
pub mod consensus;
#[cfg(feature = "std")]
pub mod contract;
#[cfg(feature = "std")]
pub mod detector;
#[cfg(feature = "std")]
pub mod fixture;
#[cfg(feature = "std")]
pub mod residual;
#[cfg(feature = "std")]
pub mod serialize;
#[cfg(feature = "std")]
pub mod sign;
#[cfg(feature = "std")]
pub mod window;
#[cfg(feature = "std")]
pub use bank::{bank_hash, BankMotif, Episode, HeuristicEntry, CANONICAL_BANK};
#[cfg(feature = "std")]
pub use candidate::{CandidateConfig, CandidateInterval};
#[cfg(feature = "std")]
pub use casefile::{
build_cpu, build_cpu_throughput, build_from_artifacts_with_mode, compare as compare_case_files,
emit as emit_case_file, CaseFile, EmissionMode, IntermediateHashes, COMPACT_INPUT_DOMAIN,
TRACE_EVENT_LAYOUT_TAG,
};
#[cfg(feature = "std")]
pub use consensus::ConsensusCell;
#[cfg(feature = "std")]
pub use contract::{Contract, KernelSequence, NumericMode};
#[cfg(feature = "std")]
pub use detector::{DetectorCell, DetectorThresholds};
pub use event::TraceEvent;
pub use fixed::Q16;
pub use grammar::{GrammarState, ReasonCode};
pub use hash::{sha256, Sha256};
pub use motif::{registry_hash, MotifClass, MOTIF_CATALOG};
#[cfg(feature = "std")]
pub use residual::{Baseline, ResidualCell};
#[cfg(feature = "std")]
pub use sign::SignCell;
pub use verdict::FinalVerdict;
#[cfg(feature = "std")]
pub use window::WindowFeature;