Skip to main content

sim_lib_serial_core/
lib.rs

1//! Finite symbolic alphabets, validated series, and certified total transforms.
2//!
3//! This crate owns the pitch-independent serial contract: stable alphabet
4//! identity, symbol-bearing series, aggregate policy data, validation evidence,
5//! permutation rank delegation, and total evidence-producing transforms. Pitch
6//! rows, score realization, search, and enumeration live in their domain owners.
7#![forbid(unsafe_code)]
8#![deny(missing_docs)]
9
10mod aggregate;
11mod alphabet;
12mod certificate;
13mod error;
14mod permutation;
15mod series;
16mod transform;
17
18pub use aggregate::{
19    AggregateLedger, AggregateRule, AggregateRuleKind, ProjectedClassEvidence, ProjectedClassSpec,
20    ProjectionId, SymbolCount,
21};
22pub use alphabet::{AlphabetId, AlphabetRegistry, FiniteAlphabet, SerialAlphabet};
23pub use certificate::{RelaxedInvariant, TransformCertificate, TransformedSeries};
24pub use error::{
25    AggregateRuleError, AlphabetError, BlockPartitionError, OrdinalMapError, SeriesError,
26    SeriesTransformError, SymbolBijectionError,
27};
28pub use permutation::{BlockPartition, OrdinalMap, OrdinalPermutation};
29pub use series::Series;
30pub use transform::{SeriesTransform, SymbolBijection};
31
32/// Cookbook recipes for this lib, embedded at build time.
33pub static RECIPES: sim_cookbook::EmbeddedDir =
34    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
35
36#[cfg(test)]
37mod tests;
38#[cfg(test)]
39mod transform_tests;