def next
mylsm-lsm-store@0.6.0.1 · src/scan/VisibleCursor.bend:413
import mylsm-lsm-store@0.6.0.1/src/scan/VisibleCursor.bend as VisibleCursor
import Base
import mylsm-lsm-store@0.6.0.1/src/scan/SstCursor.bend as SstCursor
413
414def next(cursor: Cursor) -> IO(Step):
415 match cursor:
416 case Active{base, pending, delta, bounds, Some{entry}}:
417 IO.pure(Step, Item{entry, Active{base, pending, delta, bounds, None{}}})
418 case Active{Some{base}, None{}, delta, bounds, None{}}:
419 do IO<Step>:
420 result : SstCursor.Step <- SstCursor.next(base)
421 step : Step <- base.next.result(delta, bounds, result)
422 return step
423 case Active{base, pending, delta, bounds, None{}}:
424 IO.pure(Step, ready(base, pending, delta, bounds))
425 case Ended{}: IO.pure(Step, End{})
426 case Closed{}: IO.pure(Step, End{})
427 case Failed{error}: IO.pure(Step, Error{error})