graaf/op/
mod.rs

1//! Operations on digraphs
2//!
3//! These traits are digraph operations that can be implemented by digraph
4//! representations.
5//!
6//! # Examples
7//!
8//! ```
9//! use graaf::{
10//!     AddArc,
11//!     AdjacencyList,
12//!     Empty,
13//!     IndegreeSequence,
14//!     OutdegreeSequence,
15//!     RemoveArc,
16//! };
17//!
18//! let mut digraph = AdjacencyList::empty(3);
19//!
20//! digraph.add_arc(0, 1);
21//! digraph.add_arc(0, 2);
22//!
23//! assert!(digraph.indegree_sequence().eq([0, 1, 1]));
24//! assert!(digraph.outdegree_sequence().eq([2, 0, 0]));
25//!
26//! assert!(digraph.remove_arc(0, 1));
27//!
28//! assert!(digraph.indegree_sequence().eq([0, 0, 1]));
29//! assert!(digraph.outdegree_sequence().eq([1, 0, 0]));
30//! ```
31
32pub mod add_arc;
33pub mod add_arc_weighted;
34pub mod arc_weight;
35pub mod arcs;
36pub mod arcs_weighted;
37pub mod complement;
38pub mod contiguous_order;
39pub mod converse;
40pub mod degree;
41pub mod degree_sequence;
42pub mod filter_vertices;
43pub mod has_arc;
44pub mod has_edge;
45pub mod has_walk;
46pub mod in_neighbors;
47pub mod indegree;
48pub mod indegree_sequence;
49pub mod is_balanced;
50pub mod is_complete;
51pub mod is_isolated;
52pub mod is_oriented;
53pub mod is_pendant;
54pub mod is_regular;
55pub mod is_semicomplete;
56pub mod is_simple;
57pub mod is_spanning_subdigraph;
58pub mod is_subdigraph;
59pub mod is_superdigraph;
60pub mod is_symmetric;
61pub mod is_tournament;
62pub mod order;
63pub mod out_neighbors;
64pub mod out_neighbors_weighted;
65pub mod outdegree;
66pub mod outdegree_sequence;
67pub mod remove_arc;
68pub mod semidegree_sequence;
69pub mod sinks;
70pub mod size;
71pub mod sources;
72pub mod union;
73pub mod vertices;
74
75pub use {
76    add_arc::AddArc,
77    add_arc_weighted::AddArcWeighted,
78    arc_weight::ArcWeight,
79    arcs::Arcs,
80    arcs_weighted::ArcsWeighted,
81    complement::Complement,
82    contiguous_order::ContiguousOrder,
83    converse::Converse,
84    degree::Degree,
85    degree_sequence::DegreeSequence,
86    filter_vertices::FilterVertices,
87    has_arc::HasArc,
88    has_edge::HasEdge,
89    has_walk::HasWalk,
90    in_neighbors::InNeighbors,
91    indegree::Indegree,
92    indegree_sequence::IndegreeSequence,
93    is_balanced::IsBalanced,
94    is_complete::IsComplete,
95    is_isolated::IsIsolated,
96    is_oriented::IsOriented,
97    is_pendant::IsPendant,
98    is_regular::IsRegular,
99    is_semicomplete::IsSemicomplete,
100    is_simple::IsSimple,
101    is_spanning_subdigraph::IsSpanningSubdigraph,
102    is_subdigraph::IsSubdigraph,
103    is_superdigraph::IsSuperdigraph,
104    is_symmetric::IsSymmetric,
105    is_tournament::IsTournament,
106    order::Order,
107    out_neighbors::OutNeighbors,
108    out_neighbors_weighted::OutNeighborsWeighted,
109    outdegree::Outdegree,
110    outdegree_sequence::OutdegreeSequence,
111    remove_arc::RemoveArc,
112    semidegree_sequence::SemidegreeSequence,
113    sinks::Sinks,
114    size::Size,
115    sources::Sources,
116    union::Union,
117    vertices::Vertices,
118};