pub struct Graph<I: Index, NL: Label, EL: Label> {
    pub nodes: Vec<Node<I, NL>>,
    pub edges: Vec<Edge<I, EL>>,
}
Expand description

A Graph is in principle a owning tuple of Nodes and Edges.

Fields

nodes: Vec<Node<I, NL>>edges: Vec<Edge<I, EL>>

Implementations

Returns all nodes connected to the given node id

Removes edges that either come from or incident on invalid nodes.

Examples
use graphlang::{Node,Edge,Graph,are_graphs_isomorph};
let mut graph = Graph {
        nodes: vec![ Node::new(0u32, "a"), Node::new(1, "a") ],
        edges: vec![ Edge::new_unlabeled(0, 1), Edge::new_unlabeled(0, 2), Edge::new_unlabeled(2, 3) ] };
let reference = Graph {
        nodes: vec![ Node::new(0u32, "a"), Node::new(1, "a") ],
        edges: vec![ Edge::new_unlabeled(0, 1) ] };

graph.cleanup_edges();
assert_eq!(&reference, &graph );

Assumes that the mapping between it and the graph is the identity. So Node(1) in g adds Node(1) in self. If this is not desired apply an isomorphism explicitly using translate_copy. If then node already exists it replaces the label.

Assumes that the mapping between it and the graph is the identity. So Node(1) in g removes Node(1) in self. If this is not desired apply an isomorphism explicitly using translate_copy If then node does not exists it skips it.

Modifies a graph inplace by translating all ids using an isomorphism. If it contains nodes that are not covered by the isomorphism they are not modified, which can lead to invalid graphs. This behaviour should be reconsidered.

Returns a graph, that gets translated by an isomorphism. If it contains nodes that are not covered by the isomorphism they are not modified, which can lead to invalid graphs. This behaviour should be reconsidered.

Write graph using the dot-format to output. It can be easily visualized using graphviz

Examples
use graphlang::Graph;
let graph: Graph<_,_,_> = create_graph_somehow();
let mut f = std::fs::File::create("Example.dot")?;
graph.write_dot_to(&mut f)?;
Errors

Trait Implementations

The resulting type after applying the + operator.

Performs the + operation. Read more

The resulting type after applying the + operator.

Performs the + operation. Read more

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

Converts to this type from the input type.

Returns all the nodes in this graph.

Returns all of the edges in this graph.

The source node for edge.

The target node for edge.

Must return a DOT compatible identifier naming the graph.

Maps n to a unique identifier with respect to self. The implementer is responsible for ensuring that the returned name is a valid DOT identifier. Read more

Maps n to one of the graphviz shape names. If None is returned, no shape attribute is specified. Read more

Maps n to a label that will be used in the rendered output. The label need not be unique, and may be the empty string; the default is just the output from node_id. Read more

Maps e to a label that will be used in the rendered output. The label need not be unique, and may be the empty string; the default is in fact the empty string. Read more

Maps n to a style that will be used in the rendered output.

Maps n to one of the graphviz color names. If None is returned, no color attribute is specified. Read more

Maps e to arrow style that will be used on the end of an edge. Defaults to default arrow style. Read more

Maps e to arrow style that will be used on the end of an edge. Defaults to default arrow style. Read more

Maps e to a style that will be used in the rendered output.

Maps e to one of the graphviz color names. If None is returned, no color attribute is specified. Read more

The kind of graph, defaults to Kind::Digraph.

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

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

The resulting type after applying the - operator.

Performs the - operation. Read more

The resulting type after applying the - operator.

Performs the - operation. Read more

The resulting type after applying the - operator.

Performs the - operation. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.