def context_checked

bendvy-ecs-core@0.1.0.3 · execution_relation_linked_despawn.bend:59

import bendvy-ecs-core@0.1.0.3/execution_relation_linked_despawn.bend as ExecutionRelationLinkedDespawn
import Base
import bendvy-ecs-core@0.1.0.3/world.bend as W
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as Layout
import bendvy-ecs-core@0.1.0.3/execution_command_buffer.bend as Buffer
import bendvy-ecs-core@0.1.0.3/execution_command_permission.bend as Permission
import bendvy-ecs-core@0.1.0.3/execution_relation_context.bend as Context
import bendvy-ecs-core@0.1.0.3/execution_lifetime_scope_cleanup.bend as Cleanup
import bendvy-ecs-core@0.1.0.3/change_tick.bend as Tick

59def context_checked(~S:Data,~C:Type,~R:Type,~E:Data,~P:Type,~D:Type,~resources:Layout.Layout,~same:{R == Layout.resources(~S,resources) : Type},~selection:Permission.Selection<S,resources>,~relations:Permission.Relations<S,resources>,~dispose:Cleanup.Dispose(~S,~C,~R,~E,~P,~D),+context:Context.Context<S,R,resources,same>,+handle:W.Handle<S>,tick:Tick.Tick,result:W.World<S,C,R,E> & Bool) -> W.World<S,C,R,E> & Buffer.Receipt<S,P,D>:
60  match result:
61    case (world,False{}):denied(S,C,R,E,P,D,handle,Buffer.ForeignNamespace{},[],world)
62    case (world,True{}):live_checked(~S,~C,~R,~E,~P,~D,~resources,~same,~selection,~relations,~dispose,context,handle,tick,Cleanup.live(S,C,R,E,world,handle))

Uses (18)

Used by (1)