def write.count.validated

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

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/DurableBatchPolicy.bend as BatchPolicy
import mylsm-lsm-store@0.6.0.1/src/scan/VisibleStats.bend as VisibleStats

577def write.count.validated(
578  +path: String,
579  lock: DbLock.Lock,
580  table: ByteMemTable.Table,
581  ordered: List<&1, ByteWal.Mutation>,
582  validation: BatchPolicy.Validation
583) -> IO(Handle & Result<&1, &1, Error, Unit>):
584  match validation:
585    case BatchPolicy.ValidBatch{}:
586      write.encoded(path, lock, table, Open{}, ByteWal.Batch{ordered})
587    case BatchPolicy.BatchBytesExceeded{}:
588      IO.pure(Handle & Result<&1, &1, Error, Unit>,
589        (Handle{path, lock, table, Open{}, VisibleStats.Stats{0n, 0n}},
590          Fail{ResourceLimit{}}))
591    case BatchPolicy.BatchCountExceeded{}:
592      IO.pure(Handle & Result<&1, &1, Error, Unit>,
593        (Handle{path, lock, table, Open{}, VisibleStats.Stats{0n, 0n}},
594          Fail{ResourceLimit{}}))
595    case _:
596      IO.pure(Handle & Result<&1, &1, Error, Unit>,
597        (Handle{path, lock, table, Open{}, VisibleStats.Stats{0n, 0n}}, Fail{InvalidArgument{}}))

Uses (18)

Used by (1)