def lookup.length.go

mylsm-lsm-store@0.6.0.1 · src/ByteMemTable.bend:385

import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
import Base

385def lookup.length.go(fuel: Nat, state: LengthSearch) -> LengthLookup:
386  match fuel:
387    case 0n:
388      match state:
389        case LengthSearch{_, entries, prefix, _}:
390          lookup.length.result(prefix, entries, LengthAbsent{}, False{})
391    case 1n+rest:
392      match state:
393        case LengthSearch{query, entries, prefix, order}:
394          match entries:
395            case Nil{}:
396              lookup.length.result(prefix, Nil{}, LengthAbsent{}, False{})
397            case Con{Entry{key, val}, tail}:
398              match order:
399                case EQ{}: lookup.length.hit(prefix, key, tail, val)
400                case LT{}:
401                  lookup.length.go(rest,
402                    lookup.length.advance(query, key, val, tail, prefix))
403                case GT{}:
404                  lookup.length.go(rest,
405                    lookup.length.advance(query, key, val, tail, prefix))

Uses (11)

Used by (1)