|
A11 (C++ runtime)
Native C++ implementation of the A11 streaming action runtime
|
Several streams read as one: zip(a, b, c), interleave(a, b, c).
More...
#include <cpp/a11/flow/syntax.h>
Public Attributes | |
| std::string | name = "zip" |
| std::vector< NodePtr > | sources |
Public Attributes inherited from a11::flow::syntax::Node | |
| NodeKind | kind = NodeKind::kError |
| Location | location |
Additional Inherited Members | |
Public Member Functions inherited from a11::flow::syntax::NodeOf< NodeKind::kZip > | |
| NodeOf () | |
Public Member Functions inherited from a11::flow::syntax::Node | |
| virtual | ~Node ()=default |
Static Public Attributes inherited from a11::flow::syntax::NodeOf< NodeKind::kZip > | |
| static constexpr NodeKind | kNodeKind |
Several streams read as one: zip(a, b, c), interleave(a, b, c).
Not a [Builtin], though both are spelled like one: a builtin takes values and these take streams, so they stand only where a pipeline's source does and the resolver has to resolve each argument as a reference rather than evaluate it. Keeping the two apart is what stops len(zip(a, b)) from looking legal.
One node for both because the difference is what the runtime does with the sources, not what the source is: zip reads them in step and yields a tuple per round, interleave reads them at once and yields each value as it arrives. name is which was written.
| std::string a11::flow::syntax::Zip::name = "zip" |
| std::vector<NodePtr> a11::flow::syntax::Zip::sources |