Module fera_graph::ext
source · Expand description
Extension traits for std types.
The traits is this module are included in the prelude.
Examples
extern crate fera_fun;
extern crate fera_graph;
use fera_graph::prelude::*;
use fera_fun::vec;
let g = CompleteGraph::new(4);
let mut w = g.default_vertex_prop(0);
w[0] = 1;
w[1] = 2;
w[2] = 3;
w[3] = 0;
let mut vertices = vec(g.vertices());
assert!(!vertices.is_sorted_by_prop(&w));
vertices.sort_by_prop(&w);
assert!(vertices.is_sorted_by_prop(&w));
assert_eq!(vec![3, 0, 1, 2], vertices);
// returns the index of the vertex with w = 2,
// that is, the index of vertex 1
assert_eq!(Ok(2), vertices.binary_search_by_prop(&2, &w));
// returns the index that a vertex with w = 5
// could be inserted while maintaining sorted order
assert_eq!(Err(4), vertices.binary_search_by_prop(&5, &w));
Traits
Extension trait for slices.
Extension trait for vectors.