Struct falcon::graph::Graph[][src]

pub struct Graph<V: Vertex, E: Edge> { /* fields omitted */ }

A directed graph.

Methods

impl<V, E> Graph<V, E> where
    V: Vertex,
    E: Edge
[src]

Returns true if the vertex with the given index exists in this graph

Sets the head of this graph.

Returns the head of this graph.

Removes a vertex, and all edges associated with that vertex.

Removes an edge

Inserts a vertex into the graph.

Errors

Error if the vertex already exists by index.

Inserts an edge into the graph.

Errors

Error if the edge already exists by indices.

Returns all immediate successors of a vertex from the graph.

Returns all immediate predecessors of a vertex from the graph.

Computes the dominance frontiers for all vertices in the graph

Warning

Unsure of correctness of this implementation

Computes dominators for all vertices in the graph

Computes predecessors for all vertices in the graph

The resulting sets include all predecessors for each vertex in the graph, not just immediate predecessors.

Given A -> B -> C, both A and B will be in the set for C.

Creates an acyclic graph with NullVertex and NullEdge

Returns all vertices in the graph.

Fetches an index from the graph by index.

Get a reference to every Edge in the Graph.

Get a mutable reference to every Edge in the Graph.

Return all edges out for a vertex

Return all edges in for a vertex

Returns a string in the graphviz format

Trait Implementations

impl<V: Clone + Vertex, E: Clone + Edge> Clone for Graph<V, E>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<V: Debug + Vertex, E: Debug + Edge> Debug for Graph<V, E>
[src]

Formats the value using the given formatter. Read more

impl<V: Eq + Vertex, E: Eq + Edge> Eq for Graph<V, E>
[src]

impl<V: Hash + Vertex, E: Hash + Edge> Hash for Graph<V, E>
[src]

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

impl<V: Ord + Vertex, E: Ord + Edge> Ord for Graph<V, E>
[src]

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

impl<V: PartialEq + Vertex, E: PartialEq + Edge> PartialEq for Graph<V, E>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<V: PartialOrd + Vertex, E: PartialOrd + Edge> PartialOrd for Graph<V, E>
[src]

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Auto Trait Implementations

impl<V, E> Send for Graph<V, E> where
    E: Send,
    V: Send

impl<V, E> Sync for Graph<V, E>