webql/compiler/environment

Copy Markdown

Types

Environment

pub type Environment {
  Environment(
    inputs: dict.Dict(
      reference.Operation,
      List(#(String, reference.Port)),
    ),
    operations: dict.Dict(String, reference.Operation),
    outputs: dict.Dict(
      reference.Operation,
      List(#(String, reference.Port)),
    ),
    ports: dict.Dict(String, reference.Port),
  )
}
Environment(
  inputs: dict.Dict(
    reference.Operation,
    List(#(String, reference.Port)),
  ),
  operations: dict.Dict(String, reference.Operation),
  outputs: dict.Dict(
    reference.Operation,
    List(#(String, reference.Port)),
  ),
  ports: dict.Dict(String, reference.Port),
)

Values

add_input

pub fn add_input(
  environment: Environment,
  operation: reference.Operation,
  input: #(String, reference.Port),
) -> Environment

Adds a typed input port to the current environment instance.

add_inputs

pub fn add_inputs(
  environment: Environment,
  operation: reference.Operation,
  inputs: List(#(String, reference.Port)),
) -> Environment

Adds typed input ports to the current environment instance.

add_operation

pub fn add_operation(
  environment: Environment,
  operation: String,
) -> Environment

Adds a schema operation to the current environment instance.

add_operations

pub fn add_operations(
  environment: Environment,
  operations: List(String),
) -> Environment

Adds schema operations to the current environment instance.

add_output

pub fn add_output(
  environment: Environment,
  operation: reference.Operation,
  output: #(String, reference.Port),
) -> Environment

Adds a typed output port to the current environment instance.

add_outputs

pub fn add_outputs(
  environment: Environment,
  operation: reference.Operation,
  outputs: List(#(String, reference.Port)),
) -> Environment

Adds typed output ports to the current environment instance.

add_port

pub fn add_port(
  environment: Environment,
  port: String,
) -> Environment

Adds a port to the current environment instance.

add_ports

pub fn add_ports(
  environment: Environment,
  ports: List(String),
) -> Environment

Adds ports to the current environment instance.

get_inputs

pub fn get_inputs(
  environment: Environment,
  operation: reference.Operation,
) -> Result(List(#(String, reference.Port)), Nil)

Looks up typed input ports for an operation.

get_operation

pub fn get_operation(
  environment: Environment,
  operation: String,
) -> Result(reference.Operation, Nil)

Looks up a schema operation reference by name.

get_outputs

pub fn get_outputs(
  environment: Environment,
  operation: reference.Operation,
) -> Result(List(#(String, reference.Port)), Nil)

Looks up typed output ports for an operation.

get_port

pub fn get_port(
  environment: Environment,
  port: String,
) -> Result(reference.Port, Nil)

Looks up a port reference by name.

new

pub fn new() -> Environment

Creates a new compiler environment.

next_operation

pub fn next_operation(
  environment: Environment,
) -> reference.Operation

Gets the next stable schema operation reference.

next_port

pub fn next_port(environment: Environment) -> reference.Port

Gets the next stable port reference.