def scan.work_budget.copied
mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:2303
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 mylsm-lsm-store@0.6.0.1/src/scan/ScanWorkPolicy.bend as ScanWorkPolicy
2303def scan.work_budget.copied(
2304 +path: String,
2305 lock: DbLock.Lock,
2306 state: HandleState,
2307 base_entries: Nat & Nat,
2308 payload_bytes: Nat,
2309 copies: List<&1, ByteMemTable.Entry> & List<&1, ByteMemTable.Entry>
2310) -> Handle & Nat:
2311 match base_entries:
2312 case (retained_base_entries, budget_base_entries):
2313 match copies:
2314 case (entries, copied):
2315 +delta_count = List.length(&1, ByteMemTable.Entry, copied)
2316 (Handle{path, lock, ByteMemTable.Table{entries}, state,
2317 VisibleStats.Stats{retained_base_entries, payload_bytes}},
2318 ScanWorkPolicy.writer_transitions(budget_base_entries, delta_count))