def descendants_loop
bendvy-ecs-core@0.1.0.4 · hierarchy_traversal.bend:30
import bendvy-ecs-core@0.1.0.4/hierarchy_traversal.bend as HierarchyTraversal
import Base
import entity_key.bend as K
import bendvy-ecs-core@0.1.0.4/relation_types.bend as G
30def descendants_loop(~S:Data,n:Nat,state:List<&2,K.Key> & List<&2,K.Key>,+graph:G.Graph<S>,+descriptor:G.Descriptor<S>,+order:Order) -> Walk:
31 match n state:
32 case 0n Tuple{pending,acc}: finished(acc,pending)
33 case 1n+rest Tuple{[],acc}: Complete{List.reverse(&2,K.Key,acc)}
34 case 1n+rest state: descendants_loop(~S,rest,next_desc(~S,graph,descriptor,order,state),graph,descriptor,order)