Clairvoyant.Graph (clairvoyant v0.1.0)

Copy Markdown View Source

Summary

Types

name()

@type name() :: String.t()

t()

@type t() :: %Clairvoyant.Graph{
  edges: %{optional(name()) => [name()]},
  nodes: %{optional(name()) => %{version: String.t()}}
}

Functions

add_edge(graph, from, to)

@spec add_edge(t(), name(), name()) :: t()

add_node(graph, name, version)

@spec add_node(t(), name(), String.t()) :: t()

children(graph, name)

@spec children(t(), name()) :: [name()]

new()

@spec new() :: t()

parents(graph, name)

@spec parents(t(), name()) :: [name()]

roots(graph)

@spec roots(t()) :: [name()]

version(graph, name)

@spec version(t(), name()) :: String.t() | nil