def render.pass
emerging-eztoml@0.9.0.0 · main.bend:5927
import emerging-eztoml@0.9.0.0/main.bend as EmergingEztoml
import Base
5927
5928def render.pass(vs: List<&2, Val>, +gap: String, +trail: Bool, +tabs: Bool) -> String:
5929 match vs:
5930 case []:
5931 ""
5932 case VPair{_name, VHead{path, +rows}} <> +t:
5933 render.head(tabs, path, rows, t, gap, trail,
5934 _u => render.pass(rows, "\n", True{}, False{}) ++
5935 render.pass(rows, "\n", True{}, True{}),
5936 _u => render.pass(t, gap, trail, tabs))
5937 case VPair{_name, VAots{_path, +elems}} <> +t:
5938 render.aots(tabs, elems, t, gap, trail,
5939 _u => render.pass(elems, "\n", True{}, False{}) ++
5940 render.pass(elems, "\n", True{}, True{}),
5941 _u => render.pass(t, gap, trail, tabs))
5942 case VAot{path, +rows} <> +t:
5943 render.aot(tabs, path, rows, t, gap, trail,
5944 _u => render.pass(rows, "\n", True{}, False{}) ++
5945 render.pass(rows, "\n", True{}, True{}),
5946 _u => render.pass(t, gap, trail, tabs))
5947 case VPair{name, VArr{items}} <> +t:
5948 render.late(tabs, _u => key(name) ++ " = [" ++ render.go(items, ", ", False{}) ++ "]",
5949 t, gap, trail, _v => render.pass(t, gap, trail, tabs))
5950 case VPair{name, VInl{rows}} <> +t:
5951 render.late(tabs, _u => key(name) ++ " = {" ++ render.go(rows, ", ", False{}) ++ "}",
5952 t, gap, trail, _v => render.pass(t, gap, trail, tabs))
5953 case VPair{name, val} <> +t:
5954 render.late(tabs, _u => key(name) ++ " = " ++ render.atom(val), t, gap, trail,
5955 _v => render.pass(t, gap, trail, tabs))
5956 case VArr{items} <> +t:
5957 render.late(tabs, _u => "[" ++ render.go(items, ", ", False{}) ++ "]",
5958 t, gap, trail, _v => render.pass(t, gap, trail, tabs))
5959 case VInl{rows} <> +t:
5960 render.late(tabs, _u => "{" ++ render.go(rows, ", ", False{}) ++ "}",
5961 t, gap, trail, _v => render.pass(t, gap, trail, tabs))
5962 case v <> +t:
5963 render.late(tabs, _u => render.atom(v), t, gap, trail,
5964 _v => render.pass(t, gap, trail, tabs))