def run_observed

bendvy-ecs-core@0.1.0.4 · ordinary_owned_event_query.bend:32

import bendvy-ecs-core@0.1.0.4/ordinary_owned_event_query.bend as OrdinaryOwnedEventQuery
import Base
import bendvy-ecs-core@0.1.0.4/change_tick.bend as Tick
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/transaction.bend as T
import bendvy-ecs-core@0.1.0.4/compose.bend as Q
import bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend as Decl
import bendvy-ecs-core@0.1.0.4/ordinary_owned_event.bend as Pub
import bendvy-ecs-core@0.1.0.4/owned_event_storage.bend as Storage

32# Transport is closed and always succeeds. Semantic failure must not advance the
33# ordinary query cursor; the returned receipt remains outside Sys.Failed erasure.
34def run_observed(~S:Data,~C:Type,~R:Type,~P:Type,~identity:Pub.Domain<S,P>,~Ops:Type -> Type,~A:Data,~U:Data,~Out:Data,~query:Decl.Declaration<S,Q.Frame<S,C,Storage.Resources<R,P>,Nat>,Ops(Q.Frame<S,C,Storage.Resources<R,P>,Nat>)>,~body:@-H:Type -> @-caps:Ops(H) -> @-J:Type -> @-emit:Pub.Write<S,P,identity,J> -> A -> H -> J -> H & (J & (T.Outcome<U> & Out)),world:W.World<S,C,Storage.Resources<R,P>,Nat>,args:A,observed:Sys.Registry<S,C,Storage.Resources<R,P>,Nat,A & Maybe<&2,Tick.Tick>,Unit,Pub.Reply<Q.Error<U>,List<&2,Out>,P>,runner(~S,~C,~R,~P,~identity,~Ops,~A,~U,~Out,~query,~body)> & Maybe<&2,Tick.Tick>) -> Sys.RunResult<S,C,Storage.Resources<R,P>,Nat,A & Maybe<&2,Tick.Tick>,Unit,Pub.Reply<Q.Error<U>,List<&2,Out>,P>,runner(~S,~C,~R,~P,~identity,~Ops,~A,~U,~Out,~query,~body)>:
35  match observed:
36    case (registry,cursor):Sys.run(~S,~C,~Storage.Resources<R,P>,~Nat,~(A & Maybe<&2,Tick.Tick>),~Unit,~Pub.Reply<Q.Error<U>,List<&2,Out>,P>,~runner(~S,~C,~R,~P,~identity,~Ops,~A,~U,~Out,~query,~body),registry,world,(args,cursor))

Uses (20)

Used by (1)