A11 (C++ runtime)
Native C++ implementation of the A11 streaming action runtime
Loading...
Searching...
No Matches
a11::flow::StepPlan Struct Reference

One resolved statement, as the plan format describes it. More...

#include <cpp/a11/flow/plan.h>

Public Attributes

std::string kind
 The kind of statement, as a11.flow.plan's Step.kind spells it: call, pipe, skip, wait, drain, cancel, fail, for, repeat, if, capture.
 
std::string label
 The name this step is known by: a bound name, or action, for, if with a #2 after it where one label is used twice.
 
std::vector< std::string > after
 What it waits for, by label.
 
std::string action
 For a call: the action, the verb, and where it goes.
 
std::string mode
 
std::string node_map
 
std::optional< absl::Duration > timeout
 
bool tolerant = false
 
bool tee = false
 
std::string source
 For a pipe/skip/wait/drain: what it reads and what it writes, as a reader would say them – search.hits | truncate 200 -> brief.pages.
 
std::string destination
 
std::vector< std::vector< StepPlan > > bodies
 Bodies nested in this step, in the order the language reads them: a for or repeat has one, an if has two.
 
syntax::Location location
 

Detailed Description

One resolved statement, as the plan format describes it.

Flat on purpose: this is what a11 flow describe prints and what a reader diffs to see whether a change to a flow changed what it does. The executable graph – refs with buffers, steps that can be run – arrives with the native runtime and grows out of these, rather than being a second description of them.

Member Data Documentation

◆ action

std::string a11::flow::StepPlan::action

For a call: the action, the verb, and where it goes.

◆ after

std::vector<std::string> a11::flow::StepPlan::after

What it waits for, by label.

◆ bodies

std::vector<std::vector<StepPlan> > a11::flow::StepPlan::bodies

Bodies nested in this step, in the order the language reads them: a for or repeat has one, an if has two.

◆ destination

std::string a11::flow::StepPlan::destination

◆ kind

std::string a11::flow::StepPlan::kind

The kind of statement, as a11.flow.plan's Step.kind spells it: call, pipe, skip, wait, drain, cancel, fail, for, repeat, if, capture.

◆ label

std::string a11::flow::StepPlan::label

The name this step is known by: a bound name, or action, for, if with a #2 after it where one label is used twice.

◆ location

syntax::Location a11::flow::StepPlan::location

◆ mode

std::string a11::flow::StepPlan::mode

◆ node_map

std::string a11::flow::StepPlan::node_map

◆ source

std::string a11::flow::StepPlan::source

For a pipe/skip/wait/drain: what it reads and what it writes, as a reader would say them – search.hits | truncate 200 -> brief.pages.

◆ tee

bool a11::flow::StepPlan::tee = false

◆ timeout

std::optional<absl::Duration> a11::flow::StepPlan::timeout

◆ tolerant

bool a11::flow::StepPlan::tolerant = false

The documentation for this struct was generated from the following file: