def search
bendvy-ecs-core@0.1.0.3 · chunk_column.bend:141
import bendvy-ecs-core@0.1.0.3/chunk_column.bend as ChunkColumn
import Base
import bendvy-ecs-core@0.1.0.3/change_tick.bend as Tick
141def search(~S:Data,~C:Type,fuel:Nat,state:Search<S,C>,+tick:Tick.Tick) -> SwapOutcome<S,C>:
142 match fuel state:
143 case 0n Search{column,_,incoming,path}: Rejected{rebuild(~S,~C,path,column),incoming}
144 case 1n+_ Search{Leaf{values,stamps},+index,incoming,path}: returned(~S,~C,path,swap_leaf(~S,~C,values,stamps,index,incoming,tick,U32.is_lt(index,8)))
145 case 1n+rest Search{Branch{+half,left,right},+index,incoming,path}: search(~S,~C,rest,route(~S,~C,left,right,half,index,incoming,path,U32.is_lt(index,half)),tick)