def migration.destination.checked
import mylsm-lsm-store@0.6.0.1/src/transfer/MigrateRunIo.bend as MigrateRunIoimport Base
import mylsm-lsm-store@0.6.0.1/src/transfer/FormatInspect.bend as FormatInspect
import mylsm-lsm-store@0.6.0.1/src/transfer/Migrate.bend as Migrate
import mylsm-lsm-store@0.6.0.1/src/transfer/MigrateIo.bend as MigrateIo
173def migration.destination.checked(
174 source: String,
175 destination: String,
176 bundle: String,
177 inspection: FormatInspect.Inspection,
178 result: Result<&1, &1, U32 & String, Bool>
179) -> IO(Result<&1, &1, Error, Unit>):
180 match result:
181 case Fail{(code, message)}:
182 IO.pure(Result<&1, &1, Error, Unit>, Fail{Host{code, message}})
183 case Done{True{}}:
184 IO.pure(Result<&1, &1, Error, Unit>,
185 Fail{Rejected{Migrate.DestinationExists{}}})
186 case Done{False{}}:
187 do IO<Result<&1, &1, Error, Unit>>:
188 snapshot : Result<&1, &1, MigrateIo.Error, MigrateIo.SourceSnapshot> <-
189 MigrateIo.read_legacy_source(source)
190 migration.snapshot(inspection, destination, bundle, snapshot)