def update_owners

bendvy-ecs-core@0.1.0.4 · ordinary_app_run.bend:119

import bendvy-ecs-core@0.1.0.4/ordinary_app_run.bend as OrdinaryAppRun
import Base
import bendvy-ecs-core@0.1.0.4/ordinary_app_composer.bend as Build
import bendvy-ecs-core@0.1.0.4/ordinary_app_schema.bend as App
import bendvy-ecs-core@0.1.0.4/ordinary_app_schedule.bend as Single
import bendvy-ecs-core@0.1.0.4/ordinary_app_registration_fields.bend as Records
import bendvy-ecs-core@0.1.0.4/ordinary_app_observation_data.bend as DTO
import bendvy-ecs-core@0.1.0.4/execution_context.bend as Ctx
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/system.bend as Sys
import bendvy-ecs-core@0.1.0.4/schedule_provision.bend as SP

119# Advanced adapter to modify retained invocation owners with caller-supplied
120# arguments, including affine Type values.
121# Returns the application with the same world, plan and execution recipe;
122# modify must return H and preserve registration identity/metadata invariants.
123# It is not an ECS transaction and does not validate arbitrary owner changes.
124def update_owners(~S:Data,~C:Type,~R:Type,~E:Data,~H:Type,~Rows:Data,~observe:W.World<S,C,R,E> -> W.World<S,C,R,E> & DTO.Observation<Rows>,~fold:H -> H & List<&2,Records.Fields<S>>,~Error:Data,~plan:H -> H & SP.Plan<S>,~dispatch:H -> Ctx.Context<W.World<S,C,R,E>> -> U32 -> H & Sys.Outcome<Ctx.Context<W.World<S,C,R,E>>,Error,Unit>,~provide:W.World<S,C,R,E> -> W.World<S,C,R,E> & List<&2,SP.Requirement<S>>,~Args:Type,~modify:H -> Args -> H,value:Application<S,C,R,E,H,Rows,observe,fold,Error,plan,dispatch,provide>,args:Args) -> Application<S,C,R,E,H,Rows,observe,fold,Error,plan,dispatch,provide>:
125  match value:
126    case Application{Single.Application{App.Application{schema,Build.Registered{world,owners,recipe,debug}},selected,namespace,name,steps,needs},execution}:Application{Single.Application{App.Application{schema,Build.Registered{world,modify(owners,args),recipe,debug}},selected,namespace,name,steps,needs},execution}

Uses (15)

Used by (0)

No other definition uses this definition.