def define_checked

bendvy-ecs-core@0.1.0.3 · execution_command_system.bend:79

import bendvy-ecs-core@0.1.0.3/execution_command_system.bend as ExecutionCommandSystem
import Base
import bendvy-ecs-core@0.1.0.3/world.bend as W
import bendvy-ecs-core@0.1.0.3/execution_system.bend as Sys
import bendvy-ecs-core@0.1.0.3/execution_system_registration.bend as Registration
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as Layout
import bendvy-ecs-core@0.1.0.3/execution_command_local.bend as Local
import bendvy-ecs-core@0.1.0.3/execution_command_removed.bend as Removed

79# The full command schema fixes the inserted payload type and destination.
80# C/R describe the physical gameplay scope, which may be one root-cut branch;
81# registration always uses the actual complete World and its single allocator.
82def define_checked(~S:Data,~C:Type,~R:Type,~E:Data,~layout:Layout.Layout,~resources:Layout.Layout,~route:Layout.Route,~valid:{Layout.grant_valid(~layout,~route) == True{} : Bool},~Ops:Data -> (Type -> Type) -> Type -> Type -> Type,~User:Type,~Error:Data,~Out:Data,~declaration:Program(~S,~C,~R,~layout,~resources,~route,~Ops),~body:Body(~S,~layout,~resources,~route,~Ops,~User,~Error,~Out),~WR:Type,world:W.World<S,Layout.columns(~S,layout),WR,E>,name:String,user:User,checked:CheckedPermission<S,resources>) -> Sys.Defined<W.World<S,Layout.columns(~S,layout),WR,E>,Owner<S,C,R,E,layout,resources,route,Ops,User,Error,Out,declaration,body>,Captures(~S,~layout,~resources,~route,~User)>:
83  match checked:
84    case UnsupportedPermission{permission,relations}:Sys.DefinitionRefused{world,Local.fresh(~S,~(Layout.payload(layout,route)),~(Removed.Removed(layout)),~User,user,permission)}
85    case ReadyPermission{permission,relations}:wrapped(~S,~C,~R,~E,~layout,~resources,~route,~Ops,~User,~Error,~Out,~declaration,~body,~WR,Registration.define_framework(~S,~(Layout.columns(~S,layout)),~C,~R,~E,~ScopedOps(~S,~layout,~resources,~route,~Ops),~Captures(~S,~layout,~resources,~route,~User),~Error,~Out,~program_for_buffer(~S,~C,~R,~layout,~resources,~route,~Ops,~declaration),~runner(~S,~layout,~resources,~route,~Ops,~User,~Error,~Out,~body),~WR,world,name,Local.fresh(~S,~(Layout.payload(layout,route)),~(Removed.Removed(layout)),~User,user,permission)))

Uses (21)

Used by (1)