def publish_interpreted

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

import bendvy-ecs-core@0.1.0.3/execution_command_system.bend as ExecutionCommandSystem
import Base
import bendvy-ecs-core@0.1.0.3/execution_lifetime_scope_buffer.bend as LifetimeScope
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_buffer.bend as Buffer
import bendvy-ecs-core@0.1.0.3/execution_command_publication.bend as Publication
import bendvy-ecs-core@0.1.0.3/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.3/execution_command_permission.bend as Permission
import bendvy-ecs-core@0.1.0.3/execution_command_removed.bend as Removed
import bendvy-ecs-core@0.1.0.3/execution_relation_context.bend as Context

112def publish_interpreted(~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,~sameWR:{WR == Layout.resources(~S,resources) : Type},~relations:Permission.Relations<S,resources>,~selection:Permission.Selection<S,resources>,~scopeInterpreter:LifetimeScope.Interpreter(~S,~Layout.columns(~S,layout),~WR,~E,~Layout.payload(layout,route),~Removed.Removed(layout),~resources,~sameWR),+checked:CheckedPermission<S,resources>,tick:Tick.Tick,world:W.World<S,Layout.columns(~S,layout),WR,E>,owner:Owner<S,C,R,E,layout,resources,route,Ops,User,Error,Out,declaration,body>) -> W.World<S,Layout.columns(~S,layout),WR,E> & Owner<S,C,R,E,layout,resources,route,Ops,User,Error,Out,declaration,body>:
113  match owner:
114    case Owner{Sys.Owner{+namespace,+id,+name,+access,+cursor,Local.Local{user,commands,+permission}}}:publication_verified_gate(W.World<S,Layout.columns(~S,layout),WR,E>,Buffer.Buffer<S,Layout.payload(layout,route),Removed.Removed(layout)>,Owner<S,C,R,E,layout,resources,route,Ops,User,Error,Out,declaration,body>,Registration.verify(~S,~(Layout.columns(~S,layout)),~WR,~E,~System(~S,~C,~R,~E,~layout,~resources,~route,~Ops,~User,~Error,~Out,~declaration,~body),Registration.Meta{namespace,id,name,access,cursor},world),commands,_ => Bool.and(checked_permission_agrees(~S,~resources,permission,checked),Permission.relations_agree(~S,~resources,relations,checked_relations(~S,~resources,checked))),actionWorld => actionCommands => Publication.apply_at_interpreted(~S,~WR,~E,~layout,~route,~valid,~resources,~sameWR,~selection,~relations,~scopeInterpreter,Context.Context{namespace},permission,actionWorld,actionCommands,tick),published(~S,~C,~R,~E,~layout,~resources,~route,~Ops,~User,~Error,~Out,~declaration,~body,~WR,Registration.Meta{namespace,id,name,access,cursor},user,permission))

Uses (32)

Used by (3)