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))

Uses (11)

Used by (1)