def enc
bend-toon-codec@0.1.0.0 · src/encode.bend:260
import bend-toon-codec@0.1.0.0/src/encode.bend as Encode
import Base
import bend-toon-codec@0.1.0.0/src/json.bend as J
import bend-toon-codec@0.1.0.0/src/text.bend as T
import bend-toon-codec@0.1.0.0/src/rep.bend as R
260
261
262def enc(j: J.Json, +elem: Bool, +d: Delim) -> R.Rep:
263 match j:
264 case J.JArr{+items}:
265 arr.rep(elem, items, d, enc(items, True{}, d))
266 case J.JObj{fields}:
267 enc(fields, False{}, d)
268 case J.JNil{}:
269 R.RLines{Nil{}}
270 case J.JCons{h, t}:
271 R.RLines{R.cat(R.item(enc(h, True{}, d)), R.lines.of(enc(t, True{}, d)))}
272 case J.JField{k, v, t}:
273 R.RLines{R.cat(R.field(T.enc.key(k), enc(v, False{}, d)), R.lines.of(enc(t, False{}, d)))}
274 case _:
275 R.RPrim{prim.text(j, code(d))}