def write_column
bendvy-ecs-core@0.1.0.3 · execution_reservation_materialization.bend:91
import bendvy-ecs-core@0.1.0.3/execution_reservation_materialization.bend as ExecutionReservationMaterialization
import Base
import bendvy-ecs-core@0.1.0.3/chunk_column.bend as Column
import bendvy-ecs-core@0.1.0.3/change_tick.bend as Tick
91def write_column(~S:Data,-P:Type,column:Column.Column<S,P>,+index:U32,+tick:Tick.Tick,incoming:Maybe<&1,P>) -> Column.Column<S,P> & Maybe<&1,P>:
92 match column incoming:
93 case column None{}:(column,None{})
94 case Column.Leaf{values,stamps} Some{incoming}:written_value(~S,P,stamps,index,tick,Array.swap(Maybe<&1,P>,values,index,Some{incoming}))
95 case Column.Branch{+half,left,right} Some{incoming}:write_branch(~S,P,write_column(~S,P,left,index,tick),write_column(~S,P,right,U32.sub(index,half),tick),half,incoming,U32.is_lt(index,half))