def close.out
emerging-ezjson@1.3.0.0 · src/pull.bend:376
import emerging-ezjson@1.3.0.0/src/pull.bend as Pull
import Base
376
377def close.out(ev: Ev, frames: List<&2, Frame>, goal: Goal) -> St:
378 match frames goal:
379 case Nil{} GNext{}:
380 close.next(ev, Nil{}, True{})
381 case Nil{} GSkip{depth}:
382 close.skip(Nil{}, depth, True{})
383 case Con{FArr{SVal{}, fresh}, outer} GNext{}:
384 close.next(ev, FArr{SCom{}, False{}} <> outer, False{})
385 case Con{FObj{SVal{}, fresh}, outer} GNext{}:
386 close.next(ev, FObj{SCom{}, False{}} <> outer, False{})
387 case Con{FArr{SVal{}, fresh}, outer} GSkip{depth}:
388 close.skip(FArr{SCom{}, False{}} <> outer, depth, False{})
389 case Con{FObj{SVal{}, fresh}, outer} GSkip{depth}:
390 close.skip(FObj{SCom{}, False{}} <> outer, depth, False{})
391 case frames2 g:
392 err.st(g)