2 stable releases

1.0.1 Jan 26, 2024
1.0.0 Oct 25, 2023

#464 in Data structures

40 downloads per month
Used in 2 crates

MIT license

11KB
198 lines

terrain-graph

A simple graph library for Rust based on adjacency lists.

This is a subproject for the fastlem.

This library contains the following structures:

  • DirectedGraph
  • UndirectedGraph
  • EdgeAttributedDirectedGraph
  • EdgeAttributedUndirectedGraph

Usage

[dependencies]
terrain-graph = "1.0.1"

This is a basic example of how to use the UndirectedGraph and DirectedGraph:

use terrain_graph::*;

// Create an undirected graph
let mut undirected_graph = UndirectedGraph::new(5);
undirected_graph.add_edge(0, 1);
undirected_graph.add_edge(0, 2);
println!("{}", undirected_graph.has_edge(1, 0)); // Outputs: true
println!("{}", undirected_graph.degree(0)); // Outputs: 2

// Create a directed graph
let mut directed_graph = DirectedGraph::new(5);
directed_graph.add_edge(0, 1);
directed_graph.add_edge(0, 2);
println!("{}", directed_graph.has_edge(1, 0)); // Outputs: false
println!("{}", directed_graph.outdegree(0)); // Outputs: 2
println!("{}", directed_graph.indegree(1)); // Outputs: 1

No runtime deps