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