def step
stelliferous@0.0.2.0 · tensor_cursor.bend:53
import stelliferous@0.0.2.0/tensor_cursor.bend as TensorCursor
import Base
53def step(~Rest: Data,~next: Rest -> U32 -> Rest & U32,level: Level<Rest>,address: U32) -> Level<Rest> & U32:
54 Level{axis,rest} = level
55 match axis:
56 case Axis{extent,0n,stride,rewind}: (Level{Axis{extent,0n,stride,rewind},rest},address)
57 case Axis{+extent,1n,stride,+rewind}: reset(~Rest,extent,stride,rewind,next(rest,(address - rewind : U32)))
58 case Axis{extent,1n+1n+remaining,+stride,rewind}: (Level{Axis{extent,1n+remaining,stride,rewind},rest},(address + stride : U32))