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)

Uses (12)

Used by (1)