ipfrs_network/overlay_network_manager/mod.rs
1//! Virtual overlay network topology manager.
2//!
3//! This module provides [`OverlayNetworkManager`], which models a logical
4//! virtual network layered on top of physical peer connections. Unlike the
5//! simpler [`crate::overlay_network`] module (which uses numeric node IDs and
6//! DHT-style routing), this implementation works with human-readable string IDs
7//! and virtual IP-style addresses, supports multiple topology templates
8//! (FullMesh, Ring, Star, Hypercube, Custom), and provides Dijkstra-based
9//! multi-policy routing as well as k-shortest paths via Yen's algorithm.
10//!
11//! # Design goals
12//! - Zero I/O, zero `unwrap()`.
13//! - Deterministic PRNG (xorshift64) and FNV-1a hashing for internal use.
14//! - All public methods return `Result<_, OverlayError>` or a plain value.
15//! - Union-find for connected-components, Dijkstra for single-source routing,
16//! Yen's algorithm for k-shortest paths.
17
18pub mod bwnode_traits;
19pub mod dijknode_traits;
20pub mod functions;
21pub mod overlayconfig_traits;
22pub mod types;
23
24// Re-export all types
25pub use functions::*;
26pub use types::*;
27
28#[cfg(test)]
29mod tests;