CouncilEx.Diagram.IR (CouncilEx v0.1.0)

Copy Markdown View Source

Canonical intermediate representation of a council topology.

Summary

Types

edge_t()

@type edge_t() :: %{
  from: String.t(),
  to: String.t(),
  kind: :feeds | :aggregates | :contains | :routes_to | :invokes,
  label: String.t() | nil
}

node_kind()

@type node_kind() ::
  :input | :output | :round | :member | :sub_council | :chair | :router | :tool

node_t()

@type node_t() :: %{
  id: String.t(),
  kind: node_kind(),
  label: String.t(),
  attrs: map()
}

t()

@type t() :: %CouncilEx.Diagram.IR{
  council: module() | String.t(),
  edges: [edge_t()],
  nodes: [node_t()]
}