def ancestors_loop
bendvy-ecs-core@0.1.0.4 · hierarchy_traversal.bend:45
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
45def ancestors_loop(~S:Data,n:Nat,state:Maybe<&2,K.Key> & List<&2,K.Key>,+graph:G.Graph<S>,+descriptor:G.Descriptor<S>) -> Walk:
46 match n state:
47 case 0n state: ancestor_finished(state)
48 case 1n+rest Tuple{None{},acc}: Complete{List.reverse(&2,K.Key,acc)}
49 case 1n+rest state: ancestors_loop(~S,rest,next_ancestor(~S,graph,descriptor,state),graph,descriptor)