Versions in this module Expand all Collapse all v0 v0.3.1 Jun 20, 2025 v0.3.0 Jun 20, 2025 Changes in this version + type PathSegment Triple[optional.Option[P], *Node[O, P], optional.Option[P]] + func (seg *PathSegment[O, P]) String() string v0.2.0 May 24, 2025 v0.1.0 Feb 15, 2025 Changes in this version + type Connection struct + FromNode *Node[I, P] + FromPort P + ToNode *Node[I, P] + ToPort P + func NewConnection[I, P comparable](fromNode *Node[I, P], fromPort P, toNode *Node[I, P], toPort P) *Connection[I, P] + func (connection *Connection[I, P]) EqualNodes() bool + func (connection *Connection[I, P]) IsSelf() bool + func (connection *Connection[I, P]) String() string + type Graph struct + func NewGraph[I, P comparable]() *Graph[I, P] + func (graph *Graph[I, P]) AddConnection(connection *Connection[I, P]) error + func (graph *Graph[I, P]) AddNode(node *Node[I, P]) + func (graph *Graph[I, P]) Connect(fromNode *Node[I, P], fromPort P, toNode *Node[I, P], toPort P) error + func (graph *Graph[I, P]) ConnectBi(fromNode *Node[I, P], fromPort P, toNode *Node[I, P], toPort P) error + func (graph *Graph[I, P]) ConnectRef(fromRef I, fromPort P, toRef I, toPort P) error + func (graph *Graph[I, P]) ConnectRefBi(fromRef I, fromPort P, toRef I, toPort P) error + func (graph *Graph[I, P]) Find(fromNode *Node[I, P], fromPort P, toNode *Node[I, P], toPort P) [][]*Triple[*P, *Node[I, P], *P] + func (graph *Graph[I, P]) FindConnection(node *Node[I, P], port P) (*Connection[I, P], bool) + func (graph *Graph[I, P]) FindRef(fromRef I, fromPort P, toRef I, toPort P) ([][]*Triple[*P, *Node[I, P], *P], error) + type Node struct + func NewNode[I, P comparable](id I) *Node[I, P] + func (node *Node[I, P]) Connect(from, to P) + func (node *Node[I, P]) ConnectBi(from, to P) + func (node *Node[I, P]) Equals(o *Node[I, P]) bool + func (node *Node[I, P]) Id() I + func (node *Node[I, P]) Next(port P) []P + func (node *Node[I, P]) String() string + type Triple struct + Left L + Middle M + Right R + func NewTriple[L, M, R comparable](l L, m M, r R) *Triple[L, M, R] + func (triple *Triple[L, M, R]) String() string