def fold_rows

bendvy-ecs-core@0.1.0.4 · owned_event_family_reader_runtime.bend:29

import bendvy-ecs-core@0.1.0.4/owned_event_family_reader_runtime.bend as OwnedEventFamilyReaderRuntime
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/transaction.bend as T
import bendvy-ecs-core@0.1.0.4/capabilities.bend as Cap
import bendvy-ecs-core@0.1.0.4/owned_event_log.bend as Log
import bendvy-ecs-core@0.1.0.4/owned_event_family_storage.bend as Storage
import bendvy-ecs-core@0.1.0.4/owner_product.bend as Product

29def fold_rows(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~path:Product.Lens<R,Log.Log<P>,Rest>,~Request:Type,~Projection:Data,~Args:Type,~Error:Data,~at:P -> Request -> P & Projection,~body:@-H:Type -> @-read:Cap.Request<H,Request,Projection> -> H -> Args -> H & (T.Outcome<Error> & Args),keys:List<&2,Nat>,world:W.World<S,C,R,E>,args:Args,+lagged:Bool) -> W.World<S,C,R,E> & Reply<Error,Args>:
30  match keys:
31    case []:stopped(~S,~C,~R,~P,~Rest,~E,~path,~Args,~Error,world,args,T.Success{},lagged)
32    case key <> remaining:visited(~S,~C,~R,~P,~Rest,~E,~path,~Args,~Error,lagged,nextWorld => nextArgs => fold_rows(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Error,~at,~body,remaining,nextWorld,nextArgs,lagged),Storage.read(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~(T.Outcome<Error> & Args),~at,~body,world,key,args))

Uses (13)

Used by (1)