def scan.exhausted
mylsm-lsm-store@0.6.0.1 · src/scan/SstCursor.bend:202
import mylsm-lsm-store@0.6.0.1/src/scan/SstCursor.bend as SstCursor
import Base
import mylsm-lsm-store@0.6.0.1/src/scan/ByteBlockReader.bend as ByteBlockReader
202def scan.exhausted(state: ScanState) -> IO(Step):
203 match state:
204 case ScanNeed{reader, _}:
205 do IO<Step>:
206 _closed : Result<&1, &1, U32 & String, Unit> <- ByteBlockReader.close(reader)
207 return Error{(7, "SST cursor exceeded its transition budget")}
208 case ScanRead{result, _}:
209 match result:
210 case Done{ByteBlockReader.Block{reader, _}}:
211 do IO<Step>:
212 _closed : Result<&1, &1, U32 & String, Unit> <-
213 ByteBlockReader.close(reader)
214 return Error{(7, "SST cursor exceeded its transition budget")}
215 case _:
216 IO.pure(Step, Error{(7, "SST cursor exceeded its transition budget")})
217 case ScanBlock{reader, _, _}:
218 do IO<Step>:
219 _closed : Result<&1, &1, U32 & String, Unit> <- ByteBlockReader.close(reader)
220 return Error{(7, "SST cursor exceeded its transition budget")}