def effect_taken
bendvy-ecs-core@0.1.0.3 · execution_query_column.bend:21
import bendvy-ecs-core@0.1.0.3/execution_query_column.bend as ExecutionQueryColumn
import Base
import bendvy-ecs-core@0.1.0.3/chunk_column.bend as Col
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as L
import bendvy-ecs-core@0.1.0.3/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.3/lifecycle.bend as Life
import bendvy-ecs-core@0.1.0.3/execution_effects.bend as E
21def effect_taken(~S:Data,~F:Type -> Type,~effects:E.Effects<F>,~layout:L.Layout,~route:L.Route,-O:Type,stamps:Array<Life.Stamp>,index:U32,tick:Tick.Tick,state:O,operation:L.payload(layout,route) -> O -> F(L.payload(layout,route) & O),result:Array<Maybe<&1,L.stored(layout,route)>> & Maybe<&1,L.stored(layout,route)>) -> F(Update<S,L.stored(layout,route),O>):
22 match result:
23 case (values,None{}):E.pure(~F,Update<S,L.stored(layout,route),O>,effects,Updated{Col.Leaf{values,stamps},state,False{}})
24 case (values,Some{L.Viewed{payload,_}}):E.map(~F,L.payload(layout,route) & O,Update<S,L.stored(layout,route),O>,effects,operation(payload,state),result=>effect_rewritten(~S,~layout,~route,O,values,stamps,index,tick,result))