Skip to main content

weavatrix_graph/
lib.rs

1#![cfg_attr(not(feature = "unsafe-fast"), forbid(unsafe_code))]
2#![deny(unsafe_op_in_unsafe_fn)]
3#![cfg_attr(not(feature = "std"), no_std)]
4#![doc = include_str!("../README.md")]
5
6#[macro_use]
7extern crate alloc;
8
9pub(crate) use alloc::{
10    string::{String, ToString},
11    vec::Vec,
12};
13
14mod algo;
15mod attribute;
16mod error;
17mod filter;
18mod format;
19mod generator;
20mod graph;
21mod kind;
22mod legacy;
23mod matrix;
24mod model;
25mod operator;
26mod payload;
27mod topology;
28mod undirected;
29mod view;
30mod working;
31
32pub use algo::{
33    AllPairsShortestPaths, AllPairsStrategy, AutoAllPairs, BellmanFord, Bfs, BiconnectedComponents,
34    BipartiteMatching, BipartitePartition, ChainDecomposition, ChainStep, CliqueEnumeration,
35    Coloring, Communities, Condensation, CycleEnumeration, DagTransitive, Dfs, DfsEvent,
36    DfsEventWorkspace, Dijkstra, DijkstraWorkspace, Direction, DistanceAnalytics,
37    DominanceFrontiers, Dominators, DominatorsIter, FeedbackArcSet, Hits, HitsScores,
38    IsomorphismSearch, IterativeCentrality, MaxFlow, MaximumMatching, Measure, MinCostFlow,
39    PathEnumeration, SignedPath, SpanningForest, SteinerTree, StoerWagnerCut, SubgraphMode,
40    TraversalControl, TraversalWorkspace, UndirectedCuts, WeightedPath, all_pairs_auto,
41    all_pairs_auto_filtered, all_simple_paths, astar, astar_filtered, bellman_ford,
42    bellman_ford_filtered, bellman_ford_measure, bellman_ford_measure_filtered,
43    betweenness_centrality, bfs, bfs_filtered, bfs_iter, bfs_iter_filtered, biconnected_components,
44    biconnected_components_filtered, bidirectional_dijkstra, bipartite_partition,
45    bridges_and_articulation_points, center, chain_decomposition, chain_decomposition_filtered,
46    chain_decomposition_from, chain_decomposition_from_filtered, closeness_centrality,
47    condensation, condensation_filtered, cycle_basis, dag_longest_path, dag_longest_path_filtered,
48    dag_longest_path_length, dag_longest_path_length_filtered, dag_transitive_reduction_closure,
49    dag_transitive_reduction_closure_filtered, dag_weighted_longest_path,
50    dag_weighted_longest_path_length, degree_centrality, depth_first_search,
51    depth_first_search_filtered, dfs, dfs_filtered, dfs_iter, dfs_iter_filtered, diameter,
52    dijkstra, dijkstra_filtered, dijkstra_iter, dijkstra_iter_filtered, dijkstra_measure,
53    dijkstra_measure_filtered, distance_analytics, distance_analytics_filtered,
54    dominance_frontiers, dominance_frontiers_filtered, dominators, dominators_filtered,
55    dsatur_coloring, eccentricity, edge_betweenness_centrality,
56    edge_betweenness_centrality_filtered, edmonds_karp, eigenvector_centrality,
57    feedback_arc_set_heuristic, find_cycle, find_cycle_filtered, floyd_warshall,
58    floyd_warshall_filtered, graph_isomorphic, has_cycle, has_cycle_filtered, hits, hits_filtered,
59    johnson_all_pairs, johnson_all_pairs_filtered, johnson_cycles, k_core_numbers,
60    k_shortest_paths, katz_centrality, label_propagation_communities, maximal_cliques,
61    maximum_bipartite_matching, maximum_flow, maximum_matching, min_cost_max_flow,
62    minimum_spanning_forest, page_rank, page_rank_filtered, periphery, prim_spanning_forest,
63    push_relabel, radius, reachable, reachable_filtered, shortest_path, shortest_path_filtered,
64    spfa, spfa_filtered, steiner_tree_approximation, stoer_wagner_min_cut,
65    stoer_wagner_min_cut_filtered, strongly_connected_components,
66    strongly_connected_components_filtered, subgraph_isomorphisms, topological_generations,
67    topological_generations_filtered, topological_sort, topological_sort_filtered,
68    undirected_edge_betweenness_centrality, undirected_edge_betweenness_centrality_filtered,
69    weakly_connected_components, weakly_connected_components_filtered,
70};
71#[cfg(feature = "rayon")]
72pub use algo::{
73    betweenness_centrality_parallel, bfs_batch_parallel, closeness_centrality_parallel,
74    dijkstra_batch_parallel, edge_betweenness_centrality_parallel, johnson_all_pairs_parallel,
75    undirected_edge_betweenness_centrality_parallel,
76};
77pub use attribute::{AttributeValue, FiniteF64};
78pub use error::{GraphError, Result};
79pub use filter::EdgeFilter;
80pub use format::{
81    GraphMlTopology, graph6_decode, graph6_encode, graphml_decode, topology_from_dot,
82    topology_to_dot, topology_to_graphml, undirected_from_dot, undirected_to_dot,
83    undirected_to_graphml,
84};
85pub use generator::{
86    RandomGraphGenerator, complete_bipartite_topology, complete_topology, cycle_topology,
87    grid_topology, path_topology, star_topology,
88};
89pub use graph::{Graph, GraphBuilder, GraphNodeIndex};
90pub use kind::{EdgeKind, EvidenceKind, NodeKind};
91pub use legacy::{LegacyGraph, LegacyLink, LegacyNode, LegacyPoint, LegacyRange};
92pub use matrix::{BitMatrix, DenseMatrix};
93pub use model::{Confidence, Edge, Node, NodeId, Provenance, SourcePosition, SourceSpan};
94pub use operator::{TopologyProjection, complement, union};
95pub use payload::{
96    AcyclicPayloadGraph, FrozenPayloadGraph, FrozenUndirectedPayloadGraph, KeyedPayloadGraph,
97    PayloadFreezeMap, PayloadGraph, StablePayloadGraph, StableUndirectedPayloadGraph,
98    UndirectedPayloadGraph,
99};
100pub use topology::{EdgeEndpoints, EdgeIndex, GraphView, IndexGraphView, NodeIndex, Topology};
101pub use undirected::{IndexUndirectedGraphView, UndirectedGraphView, UndirectedTopology};
102pub use view::{
103    EdgeFiltered, NodeFiltered, Reversed, edge_filtered, induced_subgraph_view, reversed,
104};
105pub use working::{FreezeMap, FrozenGraph, StableEdgeKey, StableNodeKey, WorkingGraph};