def project_column
bendvy-ecs-core@0.1.0.3 · execution_save_layout_field.bend:64
import bendvy-ecs-core@0.1.0.3/execution_save_layout_field.bend as ExecutionSaveLayoutField
import Base
import bendvy-ecs-core@0.1.0.3/execution_save_recipe.bend as Recipe
import bendvy-ecs-core@0.1.0.3/chunk_column.bend as Column
import bendvy-ecs-core@0.1.0.3/lifecycle.bend as Life
64def project_column(-S:Data,-P:Type,column:Column.Column<S,P>,+index:U32,project:Maybe<&1,P -> P & Recipe.Field>) -> Column.Column<S,P> & (Maybe<&2,Recipe.Field> & Maybe<&2,Life.Stamp>):
65 match column project:
66 case column None{}:(column,(None{},None{}))
67 case Column.Leaf{values,stamps} Some{project}:leaf(S,P,project,values,stamps,index,U32.is_lt(index,8))
68 case Column.Branch{+half,left,right} Some{project}:branch(S,P,project_column(S,P,left,index),project_column(S,P,right,U32.sub(index,half)),half,project,U32.is_lt(index,half))