def flush.snapshot.identifier

mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:822

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/ByteManifest.bend as ByteManifest
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

822def flush.snapshot.identifier(
823  paths: String & (String & String),
824  lock: DbLock.Lock,
825  table: ByteMemTable.Table,
826  entries: List<&1, ByteMemTable.Entry> & List<&1, ByteMemTable.Entry>,
827  decision: ByteManifest.FileIdDecision
828) -> IO(Handle & Result<&1, &1, Error, Unit>):
829  match paths:
830    case (directory, (file_directory, retained_path)):
831      match entries:
832        case (encoded, retained):
833          match decision:
834            case ByteManifest.FileIdAvailable{file_id}:
835              flush.snapshot.publish((directory, (file_directory, retained_path)),
836                lock, table, (encoded, retained), file_id)
837            case ByteManifest.FileIdExhausted{}:
838              IO.pure(Handle & Result<&1, &1, Error, Unit>,
839                (Handle{retained_path, lock, table, Open{}, VisibleStats.Stats{0n, 0n}},
840                  Fail{ResourceLimit{}}))

Uses (17)

Used by (1)