webql/graph

Copy Markdown

Types

Edge

pub type Edge {
  Edge(source: Source, target: Target)
}

A directed connection from a producing value to a receiving location.

Edge(source: Source, target: Target)

Graph

pub type Graph {
  Graph(
    parameters: List(Parameter),
    returns: List(Return),
    nodes: List(Node),
    edges: List(Edge),
  )
}

A lowered executable graph with declared interfaces, node instances, and edges between concrete ports.

Graph(
  parameters: List(Parameter),
  returns: List(Return),
  nodes: List(Node),
  edges: List(Edge),
)

Node

pub type Node {
  Supernode(name: String, graph: Graph)
  Node(name: String, node: String)
}

A node inside a graph.

Supernode(name: String, graph: Graph)
Node(name: String, node: String)

Parameter

pub type Parameter {
  Parameter(name: String, port: String)
}

A declared incoming interface on a graph.

Parameter(name: String, port: String)

Return

pub type Return {
  Return(name: String, port: String)
}

A declared outgoing interface on a graph.

Return(name: String, port: String)

Source

pub type Source {
  Output(path: List(String))
  Literal(value: Value)
}

A value that can produce data into an edge.

Output(path: List(String))
Literal(value: Value)

Target

pub type Target {
  Input(path: List(String))
}

A location that can receive data from an edge.

Input(path: List(String))

Value

pub type Value {
  Int(value: Int)
  Float(value: Float)
  String(value: String)
}

A literal value embedded in the graph.

Int(value: Int)
Float(value: Float)
String(value: String)