blob: f949536a42ea535247a52469a1d6f4368f881988 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import PureOp, Constant, T, Struct, const, val, evt from require 'alv.base'
key = const.str / const.sym
val = val! / evt!
pair = (key + val)\named 'key', 'val'
struct = Constant.meta
meta:
name: 'struct'
summary: "Construct an struct."
examples: { '(struct key1 val1 [key2 val2…])' }
description: "Produces an struct of values."
value: class extends PureOp
pattern: pair*0
type: (pairs) =>
Struct {key.result!, val\type! for {:key, :val} in *pairs}
tick: =>
pairs = @unwrap_all!
@out\set {key, val for {:key, :val} in *pairs}
{
:struct
}
|