def y
cswap-bend-cli@0.1.0.0 · fmt/yamlw.bend:71
import cswap-bend-cli@0.1.0.0/fmt/yamlw.bend as Yamlw
import Base
import cswap-bend-cli@0.1.0.0/json.bend as Json
71
72
73def y(j: Json.Json, +k: Ctx, +d: Nat) -> String:
74 match j:
75 case Json.JNull{}:
76 lead(k) ++ "null"
77 case Json.JBool{b}:
78 lead(k) ++ Json.bool.show(b)
79 case Json.JNum{t}:
80 lead(k) ++ t
81 case Json.JStr{s}:
82 lead(k) ++ str(s)
83 case Json.JArr{+items}:
84 cont(is_nil(items), k, d, "[]", y(items, CChain{}, ind(k, d)))
85 case Json.JObj{+fields}:
86 cont(is_nil(fields), k, d, "{}", y(fields, CChain{}, ind(k, d)))
87 case Json.JNil{}:
88 ""
89 case Json.JCons{h, +t}:
90 "- " ++ y(h, CItem{}, d) ++ sep(t, d, y(t, CChain{}, d))
91 case Json.JField{key, v, +t}:
92 str(key) ++ ":" ++ y(v, CKey{}, d) ++ sep(t, d, y(t, CChain{}, d))