def render_after_separator_append
qasim-bend-kit@0.1.0.2 · proof/JSON_SourceProof.bend:681
import qasim-bend-kit@0.1.0.2/proof/JSON_SourceProof.bend as JSONSourceProof
import Base
import qasim-bend-kit@0.1.0.2/libs/JSON.bend as J
import qasim-bend-kit@0.1.0.2/proof/JSON_StringProof.bend as S
681def render_after_separator_append(+value: J.Value,
682 +prefix: String,
683 +suffix: String) -> {render_after_separator(value, prefix) ++ suffix == render_after_separator(value, prefix ++ suffix) : String}:
684 match value:
685 case J.Arr{Nil{}}: S.append_assoc("]", prefix, suffix)
686 case J.Arr{head <> tail}:
687 nested_render_append(head, J.Arr{tail}, True{}, prefix, suffix,
688 render_append(head, False{}, J.render(J.Arr{tail}, True{}, prefix), suffix),
689 render_append(J.Arr{tail}, True{}, prefix, suffix))
690 case J.Obj{Nil{}}: S.append_assoc("}", prefix, suffix)
691 case J.Obj{(key, field_value) <> tail}:
692 Equal.trans(String,
693 render_after_separator(J.Obj{(key, field_value) <> tail}, prefix) ++ suffix,
694 J.render_object_field(SNil{}, key,
695 J.render(field_value, False{}, J.render(J.Obj{tail}, True{}, prefix)) ++ suffix),
696 render_after_separator(J.Obj{(key, field_value) <> tail}, prefix ++ suffix),
697 render_object_field_append(SNil{}, key,
698 J.render(field_value, False{}, J.render(J.Obj{tail}, True{}, prefix)), suffix),
699 Equal.cong(String, String, text => J.render_object_field(SNil{}, key, text),
700 J.render(field_value, False{}, J.render(J.Obj{tail}, True{}, prefix)) ++ suffix,
701 J.render(field_value, False{}, J.render(J.Obj{tail}, True{}, prefix ++ suffix)),
702 nested_render_append(field_value, J.Obj{tail}, True{}, prefix, suffix,
703 render_append(field_value, False{}, J.render(J.Obj{tail}, True{}, prefix), suffix),
704 render_append(J.Obj{tail}, True{}, prefix, suffix))))
705 case J.Null{}: render_append(J.Null{}, False{}, prefix, suffix)
706 case J.Bool{truth}:
707 match truth:
708 case True{}: render_append(J.Bool{True{}}, False{}, prefix, suffix)
709 case False{}: render_append(J.Bool{False{}}, False{}, prefix, suffix)
710 case J.Number{lexeme, certificate}:
711 render_append(J.Number{lexeme, certificate}, False{}, prefix, suffix)
712 case J.Str{text}: render_append(J.Str{text}, False{}, prefix, suffix)