def visibility

bendvy-ecs-core@0.1.0.4 · feature.bend:42

import bendvy-ecs-core@0.1.0.4/feature.bend as Feature
import Base
import bendvy-ecs-core@0.1.0.4/schema_fragments.bend as SF

42# Collect own and referenced dependency entries recursively for visibility
43# description. This does not select/build dependencies or validate composition.
44def visibility(~S:Data,tree:Tree<S>) -> List<&2,SF.Entry<S>>:
45  match tree:
46    case Empty{}: []
47    case Feature{_,own,dependencies}: List.append(&2,SF.Entry<S>,own,visibility(~S,dependencies))
48    case Sequence{left,right}: List.append(&2,SF.Entry<S>,visibility(~S,left),visibility(~S,right))

Uses (4)

Used by (1)