pub mod acceleration;
pub mod algorithms;
pub mod cfg_store;
pub mod cypher_4d;
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::four_d::{
articulation_points_4d, astar_find_path_4d, bridges_4d, earliest_arrival_path_4d,
fastest_temporal_path_4d, reachable_4d, strongly_connected_components_4d,
time_dependent_dijkstra_4d, GraphNode4D, GraphPath4D, GraphProperties, SpatialIndex,
SpatialRegion, TemporalArrival4D, TemporalDijkstraResult4D, TemporalEdge, TemporalJourney4D,
TemporalWindow, TraversalContext4D,
};
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 cypher_4d::{query_4d, GeoCypherError, GeoCypherResult, GeoCypherRow};
pub use telemetry::{LoopGuard, OpTracer};
pub use storage::{
build_spatial_pages, BoundingBox, DualEdgeType, DualGraph, DualVertex, OctreeNode,
OctreePageStore, SpatialPage, SpatialPageHeader,
};
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::{load_graph4d, save_graph4d};
pub use storage::{
CfgData, CfgEdge, CfgSectionAdapter, GraphData, GraphSectionAdapter, SerializableCfgBlock,
};
pub use storage::prop_store::{build_prop_store, lookup, read_prop_store, write_prop_store};
pub use storage::prop_store::{NodeProperties, PropLookupEntry, PropStore, PropertyValue};