Skip to main content

Algorithm

Trait Algorithm 

Source
pub trait Algorithm: Send + Sync {
    type Config: Default + Clone + Send + 'static;
    type Result: Send + 'static;

    // Required methods
    fn name() -> &'static str;
    fn run(graph: &GraphProjection, config: Self::Config) -> Self::Result;

    // Provided methods
    fn needs_reverse() -> bool { ... }
    fn needs_weights() -> bool { ... }
}
Expand description

Core trait for all graph algorithms.

Required Associated Types§

Source

type Config: Default + Clone + Send + 'static

Algorithm parameters.

Source

type Result: Send + 'static

Result type.

Required Methods§

Source

fn name() -> &'static str

Algorithm identifier.

Source

fn run(graph: &GraphProjection, config: Self::Config) -> Self::Result

Execute algorithm on a projection.

Provided Methods§

Source

fn needs_reverse() -> bool

Whether this algorithm requires reverse edges.

Source

fn needs_weights() -> bool

Whether this algorithm requires edge weights.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Algorithm for AStar

Source§

impl Algorithm for AllPairsShortestPath

Source§

impl Algorithm for AllSimplePaths

Source§

impl Algorithm for ArticulationPoints

Source§

impl Algorithm for BellmanFord

Source§

impl Algorithm for Betweenness

Source§

impl Algorithm for BidirectionalDijkstra

Source§

impl Algorithm for BipartiteCheck

Source§

impl Algorithm for Bridges

Source§

impl Algorithm for Closeness

Source§

impl Algorithm for CycleDetection

Source§

impl Algorithm for DegreeCentrality

Source§

impl Algorithm for Dijkstra

Source§

impl Algorithm for Dinic

Source§

impl Algorithm for EigenvectorCentrality

Source§

impl Algorithm for ElementaryCircuits

Source§

impl Algorithm for FordFulkerson

Source§

impl Algorithm for GraphColoring

Source§

impl Algorithm for GraphMetrics

Source§

impl Algorithm for HarmonicCentrality

Source§

impl Algorithm for KCore

Source§

impl Algorithm for KShortestPaths

Source§

impl Algorithm for KatzCentrality

Source§

impl Algorithm for LabelPropagation

Source§

impl Algorithm for Louvain

Source§

impl Algorithm for MaximalCliques

Source§

impl Algorithm for MaximumMatching

Source§

impl Algorithm for MinimumSpanningTree

Source§

impl Algorithm for NodeSimilarity

Source§

impl Algorithm for PageRank

Source§

impl Algorithm for RandomWalk

Source§

impl Algorithm for Scc

Source§

impl Algorithm for TopologicalSort

Source§

impl Algorithm for TriangleCount

Source§

impl Algorithm for Wcc