def get.sst.probe
mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:1332
import mylsm-lsm-store@0.6.0.1/src/ByteDurableDb.bend as ByteDurableDb
import Base
import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
import mylsm-lsm-store@0.6.0.1/src/DbLock.bend as DbLock
import mylsm-lsm-store@0.6.0.1/src/scan/VisibleStats.bend as VisibleStats
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes
1332def get.sst.probe(
1333 +path: String,
1334 lock: DbLock.Lock,
1335 key: Bytes.Bytes,
1336 pair: ByteMemTable.Table & ByteMemTable.Probe
1337) -> IO(Handle & Result<&1, &1, Error, Maybe<&1, Bytes.Bytes>>):
1338 match pair:
1339 case (table, ByteMemTable.Absent{}):
1340 get.sst(path, lock, key, table)
1341 case (table, ByteMemTable.Deleted{}):
1342 IO.pure(Handle & Result<&1, &1, Error, Maybe<&1, Bytes.Bytes>>,
1343 (Handle{path, lock, table, Open{}, VisibleStats.Stats{0n, 0n}}, Done{None{}}))
1344 case (table, ByteMemTable.Present{value}):
1345 IO.pure(Handle & Result<&1, &1, Error, Maybe<&1, Bytes.Bytes>>,
1346 (Handle{path, lock, table, Open{}, VisibleStats.Stats{0n, 0n}}, Done{Some{value}}))