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};