def get.sst.generation.probe
mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:1262
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
1262def get.sst.generation.probe(
1263 paths: String & String,
1264 file_id: U32,
1265 lock: DbLock.Lock,
1266 key: Bytes.Bytes,
1267 pair: ByteMemTable.Table & ByteMemTable.Probe
1268) -> IO(Handle & Result<&1, &1, Error, Maybe<&1, Bytes.Bytes>>):
1269 match paths:
1270 case (generation_dir, retained_path):
1271 match pair:
1272 case (table, ByteMemTable.Absent{}):
1273 get.sst.generation.read((generation_dir, retained_path), file_id,
1274 lock, table, key)
1275 case (table, ByteMemTable.Deleted{}):
1276 IO.pure(Handle & Result<&1, &1, Error, Maybe<&1, Bytes.Bytes>>,
1277 (Handle{retained_path, lock, table, Open{}, VisibleStats.Stats{0n, 0n}},
1278 Done{None{}}))
1279 case (table, ByteMemTable.Present{value}):
1280 IO.pure(Handle & Result<&1, &1, Error, Maybe<&1, Bytes.Bytes>>,
1281 (Handle{retained_path, lock, table, Open{}, VisibleStats.Stats{0n, 0n}},
1282 Done{Some{value}}))