def render

qasim-bend-kit@0.1.0.2 · libs/JSON.bend:289

import qasim-bend-kit@0.1.0.2/libs/JSON.bend as JSON
import Base

289def render(value: Value, members: BoolType(), suffix: String) -> String:
290    match value:
291        case Null{}: "null" ++ suffix
292        case Bool{truth}:
293            match truth:
294                case True{}: "true" ++ suffix
295                case False{}: "false" ++ suffix
296        case Number{lexeme, certificate}: lexeme ++ suffix
297        case Str{text}: "\"" ++ escape_string(text) ++ "\"" ++ suffix
298        case Arr{Nil{}}:
299            match members:
300                case False{}: "[]" ++ suffix
301                case True{}: "]" ++ suffix
302        case Arr{head <> tail}:
303            match members:
304                case False{}: "[" ++ render(head, False{}, render(Arr{tail}, True{}, suffix))
305                case True{}: "," ++ render(head, False{}, render(Arr{tail}, True{}, suffix))
306        case Obj{Nil{}}:
307            match members:
308                case False{}: "{}" ++ suffix
309                case True{}: "}" ++ suffix
310        case Obj{(key, value) <> tail}:
311            match members:
312                case False{}: render_object_field("{", key, render(value, False{}, render(Obj{tail}, True{}, suffix)))
313                case True{}: render_object_field(",", key, render(value, False{}, render(Obj{tail}, True{}, suffix)))

Uses (9)

Used by (29)