def temporary.create

mylsm-lsm-store@0.6.0.1 · src/transfer/RestoreIo.bend:363

import mylsm-lsm-store@0.6.0.1/src/transfer/RestoreIo.bend as RestoreIo
import Base
import mylsm-lsm-store@0.6.0.1/src/ByteDurableDb.bend as Db
import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
import mylsm-lsm-store@0.6.0.1/src/transfer/RestorePolicy.bend as RestorePolicy

363def temporary.create(
364  +destination: String,
365  +temporary: String,
366  created: Result<&1, &1, Db.Error, Db.Handle>,
367  measured: List<&1, ByteMemTable.Entry> & Nat
368) -> IO(Result<&1, &1, Error, Unit>):
369  match created:
370    case Fail{error}: IO.pure(Result<&1, &1, Error, Unit>, Fail{Storage{error}})
371    case Done{handle}:
372      match measured:
373        case (entries, +count):
374          do IO<Result<&1, &1, Error, Unit>>:
375            written : Db.Handle & Result<&1, &1, Db.Error, Unit> <-
376              write.loop(RestorePolicy.write.fuel(count),
377                WriteNeed{handle, entries})
378            populated : Result<&1, &1, Error, Unit> <- write.result.path(temporary, written)
379            published : Result<&1, &1, Error, Unit> <-
380              publish.result(destination, temporary, count, populated)
381            return published

Uses (19)

Used by (1)