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

Several streams read as one: zip(a, b, c), interleave(a, b, c). More...

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

Inheritance diagram for a11::flow::syntax::Zip:
[legend]

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
 

Detailed Description

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.

Member Data Documentation

◆ name

std::string a11::flow::syntax::Zip::name = "zip"

◆ sources

std::vector<NodePtr> a11::flow::syntax::Zip::sources

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