def checked_root

bendvy-ecs-core@0.1.0.4 · hierarchy_traversal_provider.bend:45

import bendvy-ecs-core@0.1.0.4/hierarchy_traversal_provider.bend as HierarchyTraversalProvider
import Base
import bendvy-ecs-core@0.1.0.4/relation_types.bend as G
import bendvy-ecs-core@0.1.0.4/relation_commands.bend as A
import bendvy-ecs-core@0.1.0.4/relation_reorder.bend as Reorder
import bendvy-ecs-core@0.1.0.4/world.bend as W

45def checked_root(~S:Data,~C:Type,~R:Type,~E:Data,~descriptor:G.HierarchyDescriptor<S>,observed:W.World<S,A.Store<S,C>,R,A.Notice<S,E>> & Bool,target:W.Handle<S>) -> W.World<S,A.Store<S,C>,R,A.Notice<S,E>> & Maybe<&2,W.Handle<S>>:
46  match observed:
47    case (world,False{}): (world,None{})
48    case (world,True{}): W.with_store(~S,~A.Store<S,C>,~R,~A.Notice<S,E>,~Maybe<&2,W.Handle<S>>,store => store_root(~S,~C,store,Reorder.descriptor(~S,descriptor),target),world)

Uses (12)

Used by (1)