def rows.seal.go

emerging-eztoml@0.9.0.0 · main.bend:4600

import emerging-eztoml@0.9.0.0/main.bend as EmergingEztoml
import Base

4600# put every table back in insertion order. one pass, no append along the way
4601def rows.seal.go(vs: List<&2, Val>, rev: Bool, acc: List<&2, Val>) -> List<&2, Val>:
4602  match vs:
4603    case []:
4604      rows.seal.fin(rev, acc)
4605    case VPair{name, VHead{path, rows}} <> t:
4606      rows.seal.go(t, rev, VPair{name, VHead{path, rows.seal.go(rows, True{}, [])}} <> acc)
4607    case VPair{name, VAots{path, elems}} <> t:
4608      rows.seal.go(t, rev,
4609        VPair{name, VAots{path, rows.seal.go(elems, True{}, [])}} <> acc)
4610    case VPair{name, VInl{rows}} <> t:
4611      rows.seal.go(t, rev, VPair{name, VInl{rows.seal.go(rows, True{}, [])}} <> acc)
4612    case VPair{name, VArr{items}} <> t:
4613      rows.seal.go(t, rev, VPair{name, VArr{rows.seal.go(items, False{}, [])}} <> acc)
4614    case VAot{path, rows} <> t:
4615      rows.seal.go(t, rev, VAot{path, rows.seal.go(rows, True{}, [])} <> acc)
4616    case VAots{path, elems} <> t:
4617      rows.seal.go(t, rev, VAots{path, rows.seal.go(elems, True{}, [])} <> acc)
4618    case VInl{rows} <> t:
4619      rows.seal.go(t, rev, VInl{rows.seal.go(rows, True{}, [])} <> acc)
4620    case VArr{items} <> t:
4621      rows.seal.go(t, rev, VArr{rows.seal.go(items, False{}, [])} <> acc)
4622    case h <> t:
4623      rows.seal.go(t, rev, h <> acc)

Uses (4)

Used by (1)