def after
bendvy-ecs-core@0.1.0.4 · captured_schedule.bend:22
import bendvy-ecs-core@0.1.0.4/captured_schedule.bend as CapturedSchedule
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/schedule.bend as Sch
import bendvy-ecs-core@0.1.0.4/schedule_provision.bend as SP
import bendvy-ecs-core@0.1.0.4/captured_schedule_composition.bend as Comp
22def after(~S:Data,~C:Type,~R:Type,~E:Data,~H:Type,~Error:Data,~catalog:H -> H & List<&2,Comp.Identity>,~dispatch:H -> W.World<S,C,R,E> -> U32 -> Comp.Outcome<W.World<S,C,R,E>,H,Error>,next:H -> W.World<S,C,R,E> -> List<&2,Sch.Observation> -> Run<W.World<S,C,R,E>,Owned<S,C,R,E,H,Error,catalog,dispatch>,S,Error>,name:String,plan:SP.Plan<S>,+id:U32,+observations:List<&2,Sch.Observation>,result:Comp.Outcome<W.World<S,C,R,E>,H,Error>) -> Run<W.World<S,C,R,E>,Owned<S,C,R,E,H,Error,catalog,dispatch>,S,Error>:
23 match result:
24 case Comp.Completed{world,owner}:next(owner,world,List.append(&2,Sch.Observation,observations,[Sch.Ran{id}]))
25 case Comp.Skipped{world,owner}:next(owner,world,List.append(&2,Sch.Observation,observations,[Sch.Skipped{id}]))
26 case Comp.Failed{world,owner,error}:Failed{world,Owned{name,plan,owner},error,List.append(&2,Sch.Observation,observations,[Sch.Ran{id}])}
27 case Comp.Refused{world,owner}:Refused{world,Owned{name,plan,owner},observations}