aboutsummaryrefslogtreecommitdiffstats
path: root/alv-lib/string.moon
blob: 5f54b07210be599d4d08b29b23dffba2a784e7fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import Op, ValueStream, Input from require 'alv.base'

str = ValueStream.meta
  meta:
    name: 'str'
    summary: "Concatenate/stringify values."
    examples: { '(.. v1 [v2…])', '(str v1 [v2…])' }
  value: class extends Op
    setup: (inputs) =>
      @out or= ValueStream 'str'
      super [Input.hot v for v in *inputs]

    tick: =>
      @out\set table.concat [tostring v! for v in *@inputs]

{
  :str, '..': str
}