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)))