def write.renamed.paths

mylsm-lsm-store@0.6.0.1 · src/coordinator/OwnerGenerationIo.bend:147

import mylsm-lsm-store@0.6.0.1/src/coordinator/OwnerGenerationIo.bend as OwnerGenerationIo
import Base
import mylsm-lsm-store@0.6.0.1/src/Fs.bend as Fs

147def write.renamed.paths(
148  directories: String & String & String,
149  generation: U32,
150  result: Result<&1, &1, U32 & String, Unit>
151) -> IO(Result<&1, &1, Error, U32>):
152  match directories:
153    case (temp_directory, (final_directory, retained_directory)):
154      match result:
155        case Fail{error}:
156          IO.pure(Result<&1, &1, Error, U32>, Fail{host(error)})
157        case Done{Unit{}}:
158          do IO<Result<&1, &1, Error, U32>>:
159            renamed : Result<&1, &1, U32 & String, Unit> <- Fs.rename(temp_directory ++ "/OWNER.GEN.tmp", final_directory ++ "/OWNER.GEN")
160            write.directory.synced(retained_directory, generation, renamed)

Uses (14)

Used by (1)