Current section

Files

Jump to
genai_core lib gen_ai graph graph.ex
Raw

lib/gen_ai/graph/graph.ex

defmodule GenAI.Graph do
@vsn 1.0
defstruct [
nodes: [],
vsn: @vsn
]
def append_node(this, node) do
%{this | nodes: this.nodes ++ [node]}
end
defimpl GenAi.Graph.NodeProtocol do
def apply(this, state) do
Enum.reduce(this.nodes, {:ok, state},
fn
_, state = {:error, _} -> state
node, {:ok, state} ->
GenAi.Graph.NodeProtocol.apply(node, state)
end
)
end
end
end