pub mod acceleration;
pub mod algorithms;
pub mod cfg_store;
pub mod spatial;
pub mod storage;
pub mod telemetry;
pub use algorithms::astar::{CfgGraphNode, CfgPath, PathComplexity};
pub use algorithms::complexity::{ComplexityBlock, ComplexityRating, ComplexityResult};
pub use algorithms::dominance::{compute_dominance, compute_dominance_frontier, DominanceResult};
pub use algorithms::loop_detection::{LoopAnalysisResult, LoopBlock, LoopInfo};
pub use algorithms::natural_loops::{find_back_edges, find_natural_loops, NaturalLoop};
pub use algorithms::scc::{condense_graph, find_cycles, has_cycles, tarjan_scc, SccResult};
pub use algorithms::slicing::{backward_slice, forward_slice, SliceResult};
pub use algorithms::topo_sort::{
critical_path_length, is_dag, topological_sort, TopoError, TopoResult,
};
pub use algorithms::transitive::{transitive_closure, transitive_reduction, ReachabilityResult};
pub use telemetry::{LoopGuard, OpTracer};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub use storage::{
GeoFileHeader, Section, SectionEntry, SectionedStorage, FILE_MAGIC, FORMAT_VERSION,
HEADER_SIZE, HEADER_SIZE_USIZE, MAX_SECTION_NAME_LEN, SECTION_ENTRY_SIZE,
SECTION_ENTRY_SIZE_USIZE,
};
pub use storage::{all_sidecar_paths, geo_cfg_path, geo_complexity_path, geo_idx_path};
pub use storage::{
CfgData, CfgEdge, CfgSectionAdapter, GraphData, GraphSectionAdapter, SerializableCfgBlock,
};