def write.encoded

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

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

562# Validates open state before encoding or touching the WAL.
563def write.encoded(
564  +path: String,
565  lock: DbLock.Lock,
566  table: ByteMemTable.Table,
567  state: HandleState,
568  batch: ByteWal.Batch
569) -> IO(Handle & Result<&1, &1, Error, Unit>):
570  match state:
571    case Open{}:
572      append.encoded(path, lock, table, ByteWal.encode(batch))
573    case Poisoned{}:
574      IO.pure(Handle & Result<&1, &1, Error, Unit>,
575        (Handle{path, lock, table, Poisoned{}, VisibleStats.Stats{0n, 0n}}, Fail{CommitUnknown{0, "database handle requires reopen"}}))

Uses (16)

Used by (1)