def row_allowed
bendvy-ecs-core@0.1.0.3 · execution_query_interpreter.bend:151
import bendvy-ecs-core@0.1.0.3/execution_query_interpreter.bend as ExecutionQueryInterpreter
import Base
import bendvy-ecs-core@0.1.0.3/chunk_query.bend as Row
import bendvy-ecs-core@0.1.0.3/execution_query.bend as Q
import bendvy-ecs-core@0.1.0.3/execution_effects.bend as Effects
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as L
import bendvy-ecs-core@0.1.0.3/world.bend as W
import bendvy-ecs-core@0.1.0.3/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.3/chunk_column.bend as Column
import bendvy-ecs-core@0.1.0.3/chunk_shape.bend as Part
import bendvy-ecs-core@0.1.0.3/execution_query_column.bend as EditColumn
151def row_allowed(~S:Data,~Permit:Data,~F:Type -> Type,~effects:Effects.Effects<F>,~full:L.Layout,~route:L.Route,~O:Type,~E:Data,~body:Q.SequentialGeneralBody(~S,~Permit,~F,~L.payload(full,route),~L.view(full,route),~O,~E),shape:Part.Shape,column:Column.Column<S,L.stored(full,route)>,+index:U32,tick:Tick.Tick,handle:W.Handle<S>,view:L.view(full,route),output:O,errors:List<&2,Row.Error<E>>,next:Column.Column<S,L.stored(full,route)> -> O -> List<&2,Row.Error<E>> -> F(Column.Column<S,L.stored(full,route)> & (O & List<&2,Row.Error<E>>)),allowed:Bool) -> F(Column.Column<S,L.stored(full,route)> & (O & List<&2,Row.Error<E>>)):
152 match allowed:
153 case False{}:next(column,output,errors)
154 case True{}:Effects.bind(~F,EditColumn.Update<S,L.stored(full,route),O & Maybe<&2,E>>,Column.Column<S,L.stored(full,route)> & (O & List<&2,Row.Error<E>>),effects,EditColumn.effect_tree(~S,~F,~effects,~full,~route,O & Maybe<&2,E>,shape,column,index,tick,(output,None{}),payload=>state=>row_operation(~S,~Permit,~F,~effects,~L.payload(full,route),~L.view(full,route),~O,~E,~body,handle,view,payload,state)),result=>row_updated(~S,~F,~L.stored(full,route),~O,~E,index,errors,next,result))