[−][src]Function rustasim::network::routing::route_all
pub fn route_all(
network: &Network,
source_id: usize
) -> HashMap<usize, Vec<usize>>
Very similar to route_id
, but returns all minimally-equal paths
Route to self exists, but has no guaranteed value.
Examples
use std::collections::HashMap; use rustasim::network::routing::route_all; // +-- 5 --+ // | | // 1 - 2 - 3 - 4 let mut network = HashMap::new(); network.insert(1, vec![2, 5]); network.insert(2, vec![1, 3]); network.insert(3, vec![5, 2, 4]); network.insert(4, vec![3]); network.insert(5, vec![1, 3]); // route from 1 let mut route = route_all(&network, 1); for (_, r) in route.iter_mut() { r.sort(); } // for ease of testing assert_eq!(route[&2], vec![2]); assert_eq!(route[&3], vec![2, 5]); assert_eq!(route[&4], vec![2, 5]); // route from 2 let mut route = route_all(&network, 2); for (_, r) in route.iter_mut() { r.sort(); } // for ease of testing assert_eq!(route[&1], vec![1]); assert_eq!(route[&3], vec![3]); assert_eq!(route[&4], vec![3]); assert_eq!(route[&5], vec![1, 3]);