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}}))

Uses (17)

Used by (1)