1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
//! # Graaf
//!
//! Functions and types for working with graphs
//!
//! ## Examples
//!
//! ```
//! use graaf::{
//! op::{
//! AddEdge,
//! Indegree,
//! Outdegree,
//! },
//! repr::AdjacencyMatrix,
//! };
//!
//! let mut adj = AdjacencyMatrix::<4>::new();
//!
//! adj.add_edge(0, 1);
//! adj.add_edge(0, 2);
//! adj.add_edge(1, 3);
//! adj.add_edge(2, 3);
//!
//! assert_eq!(adj.indegree(0), 0);
//! assert_eq!(adj.indegree(1), 1);
//! assert_eq!(adj.indegree(2), 1);
//! assert_eq!(adj.indegree(3), 2);
//!
//! assert_eq!(adj.outdegree(0), 2);
//! assert_eq!(adj.outdegree(1), 1);
//! assert_eq!(adj.outdegree(2), 1);
//! assert_eq!(adj.outdegree(3), 0);
//! ```
// Rustdoc
#![allow(incomplete_features)]
#![feature(assert_matches, generic_const_exprs)]
/// Graph algorithms
pub mod algo;
/// Operations on graphs
pub mod op;
/// Types that represent graphs
pub mod repr;