fera_graph/
lib.rs

1// This Source Code Form is subject to the terms of the Mozilla Public
2// License, v. 2.0. If a copy of the MPL was not distributed with this
3// file, You can obtain one at http://mozilla.org/MPL/2.0/.
4
5#![doc(html_root_url = "https://docs.rs/fera-graph/0.2.0/")]
6#![cfg_attr(feature = "cargo-clippy", allow(inline_always))]
7
8//! Graph data structures and algorithms.
9
10#[cfg(test)]
11extern crate itertools;
12
13#[cfg(feature = "quickcheck")]
14extern crate quickcheck;
15
16extern crate fera_fun;
17extern crate fera_optional;
18extern crate fera_unionfind;
19extern crate num_traits;
20extern crate rand;
21
22#[cfg(test)]
23#[macro_use]
24pub mod tests;
25
26// basic
27#[macro_use]
28pub mod builder;
29
30#[macro_use]
31pub mod params;
32
33pub mod algs;
34pub mod graphs;
35pub mod props;
36pub mod traverse;
37
38// others
39#[cfg(feature = "quickcheck")]
40pub mod arbitrary;
41pub mod choose;
42pub mod ext;
43pub mod sets;
44pub mod unionfind;
45
46mod fun;
47pub use fun::*;
48
49/// The fera graph prelude.
50pub mod prelude {
51    pub use builder::{Builder, WithBuilder};
52    pub use ext::{GraphsSliceExt, GraphsVecExt};
53    pub use fera_optional::Optional;
54    pub use graphs::adaptors::{SpanningSubgraph, Subgraph, WithSubgraph};
55    pub use graphs::adjset::{AdjSetDigraph, AdjSetGraph};
56    pub use graphs::complete::{CompleteDigraph, CompleteGraph};
57    pub use graphs::static_::{StaticDigraph, StaticGraph};
58    pub use graphs::{
59        Adjacency, AdjacencyDigraph, AdjacencyGraph, DefaultEdgePropMut, DefaultVertexPropMut,
60        Digraph, Directed, Edge, EdgeIndexProp, EdgeIter, EdgeKind, EdgeList, EdgeTypes, Graph,
61        GraphItem, Incidence, IncidenceDigraph, IncidenceGraph, Mixed, OptionEdge, OptionVertex,
62        Orientation, OutEdgeIter, OutNeighborIter, Undirected, UniformEdgeKind, Vertex,
63        VertexIndexProp, VertexIter, VertexList, VertexTypes, WithEdge, WithVertex,
64    };
65    pub use props::{
66        BasicEdgeProps, BasicProps, BasicVertexProps, EdgeProp, EdgePropGet, EdgePropMut,
67        EdgePropMutNew, PropGet, PropIndexMut, VertexProp, VertexPropGet, VertexPropMut,
68        VertexPropMutNew, WithEdgeIndexProp, WithEdgeProp, WithVertexIndexProp, WithVertexProp,
69    };
70}