Graph.Edge
(multigraph v0.16.1-mg.2)
Copy Markdown
This module defines the struct used to represent edges and associated metadata about them.
Used internally, v1 and v2 typically hold vertex ids, not the vertex itself, but all
public APIs which return Graph.Edge structs, return them with the actual vertices.
Summary
Functions
Defines a new edge and accepts optional values for weight, label, and properties.
Types
Functions
@spec new(Graph.vertex(), Graph.vertex(), [edge_opt()]) :: t() | no_return()
Defines a new edge and accepts optional values for weight, label, and properties.
Options
:weight- the weight of the edge (integer or float, default:1):label- the label for the edge (default:nil):properties- an arbitrary map of additional metadata (default:%{})
An error will be thrown if weight is not an integer or float.
Examples
iex> edge = Graph.Edge.new(:a, :b, label: :foo, weight: 2, properties: %{color: "red"})
...> {edge.label, edge.weight, edge.properties}
{:foo, 2, %{color: "red"}}
iex> Graph.new |> Graph.add_edge(Graph.Edge.new(:a, :b, weight: "1"))
** (ArgumentError) invalid value for :weight, must be an integer