def prepared_split

bendvy-ecs-core@0.1.0.4 · ordinary_reader_system.bend:94

import bendvy-ecs-core@0.1.0.4/ordinary_reader_system.bend as OrdinaryReaderSystem
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 Tx
import bendvy-ecs-core@0.1.0.4/reader_parameter.bend as RP

94def prepared_split(~S:Data,~C:Type,~R:Type,~E:Data,~Context:Type,~Meta:Type,~Reader:Type,~View:Data,~Delta:Type,~Args:Type,~validateFn:Context -> Reader -> Context & (Reader & Bool),~prepareFn:Context -> @+cursor:Maybe<&2,Tick.Tick> -> Reader -> Context & (Reader & (View & Delta)),~commitFn:Context -> Reader -> Delta -> @+cursor:Tick.Tick -> Context & Reader,~releaseFn:Context -> Reader -> Context,~Declaration:Type,~Failure:Data,~Output:Type,~split:Context -> W.World<S,C,R,E> & Meta,~join:W.World<S,C,R,E> -> Meta -> Context,~after:Context -> Context,~Ops:Type -> Type,~body:@-H:Type -> @-caps:Ops(H) -> (View & Args) -> H -> H & (Tx.Outcome<Failure> & Output),~grant:Ops(Tx.Tx<W.World<S,C,R,E>,E>),
95  reader:Reader,parameter:RP.Param<Context,Reader,View,Delta,validateFn,prepareFn,commitFn,releaseFn>,declaration:Declaration,delta:Delta,cursor:Tick.Tick,args:Args,view:View,parts:W.World<S,C,R,E> & Meta) -> Sys.Outcome<W.World<S,C,R,E>,Empty,Envelope<Meta,Reader,RP.Param<Context,Reader,View,Delta,validateFn,prepareFn,commitFn,releaseFn>,Declaration,Failure,Output>>:
96  match parts:
97    case (world,meta):invoke_body(~S,~C,~R,~E,~Context,~Meta,~Reader,~View,~Delta,~Args,~validateFn,~prepareFn,~commitFn,~releaseFn,~Declaration,~Failure,~Output,~split,~join,~after,~Ops,~body,~grant,reader,parameter,declaration,delta,cursor,meta,args,world,view)

Uses (13)

Used by (1)