pub mod converter;
pub mod loader;
pub mod migration;
pub mod migrator;
pub mod normalizers;
pub mod parser;
pub mod region_export;
pub mod runtime_saver;
pub mod saver;
pub mod schema;
pub mod signatures;
pub mod validators;
pub use converter::to_runtime_genome;
pub use loader::{
load_genome_from_file, load_genome_from_json, load_genome_with_report,
load_genome_with_report_from_file, peek_quantization_precision,
};
pub use migration::{
ChainRegistry, ChainResult, ChainRunner, MigrationError, MigrationStepDiagnostics, Migrator,
V2ToV3Migrator,
};
pub use migrator::{map_old_id_to_new, migrate_genome, MigrationResult};
pub use normalizers::{NormalizationDiagnostics, Normalizer, V3Normalizer};
pub use parser::{GenomeParser, ParsedGenome};
pub use region_export::subset_runtime_genome_for_region_branch;
pub use runtime_saver::{save_genome_to_file, save_genome_to_json};
pub use saver::GenomeSaver;
pub use schema::{
detect_schema_version, GenomeSchemaVersion, CURRENT_SCHEMA_VERSION, MIN_SCHEMA_VERSION,
};
pub use signatures::generate_signatures;
pub use validators::{V3Validator, ValidationReport, Validator};
pub fn default_chain_registry() -> ChainRegistry {
let mut registry = ChainRegistry::new();
registry
.register_migrator(Box::new(V2ToV3Migrator::new()))
.expect("V2ToV3Migrator is well-formed; this expect is the registry contract violation we want to crash on");
registry
.register_normalizer(Box::new(V3Normalizer::new()))
.expect("V3Normalizer is well-formed; this expect is the registry contract violation we want to crash on");
registry.register_validator(Box::new(V3Validator::new()));
registry
}