pub enum RestoreS3Error {
Show 13 variants
Config(String),
Store(Error),
Io(Error),
NoBackup {
from: String,
},
Manifest(String),
Verify(String),
IntoNotEmpty {
into: PathBuf,
},
DataDirNotEmpty {
dir: PathBuf,
entries: Vec<String>,
},
BeforeOldestArchive {
target: u64,
oldest: u64,
},
AfterLatest {
target: u64,
commits: u64,
not_restorable: Option<String>,
},
CommitTimesAbsent,
CommitTimesEnd {
recorded_through: u64,
recorded_through_ms: i64,
commits: u64,
},
Unreachable(String),
}Expand description
Why a restore failed. The target is in every case as it was before the
restore — absent, or an empty directory. (Once the store is in place
nothing is reported as a failure; see RestoreS3Outcome::install_note.)
Variants§
Config(String)
The --from URL or the AWS_* environment cannot be used.
Store(Error)
The object store refused or failed a request.
Io(Error)
Reading or writing local files failed.
NoBackup
The prefix holds no backup: there is no LATEST.
Manifest(String)
A manifest is missing or does not parse.
Verify(String)
An object does not match its manifest entry (size, CRC-32, lineage, generation or offsets), or the restored copy does not hold what the manifest says.
IntoNotEmpty
The target directory already holds something.
DataDirNotEmpty
A restore on boot: the data directory holds no store, but holds files
a restore must not mix with (entries, by name).
BeforeOldestArchive
--at names a commit below the oldest one the backup still holds.
AfterLatest
--at names a commit past the newest one in the backup, which holds
commits 0..commits.
Fields
CommitTimesAbsent
--at is a timestamp, and the backup holds no commit_times.bin (or
one that records no commit) to resolve it with.
CommitTimesEnd
--at is a timestamp at or after the newest commit time the backup
records, and the backup holds commits after that one with no recorded
time: which of them the instant falls after cannot be told.
Fields
Unreachable(String)
The target cannot be rebuilt from what the backup holds.
Trait Implementations§
Source§impl Debug for RestoreS3Error
impl Debug for RestoreS3Error
Source§impl Display for RestoreS3Error
impl Display for RestoreS3Error
Source§impl Error for RestoreS3Error
impl Error for RestoreS3Error
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<BackupError> for RestoreS3Error
impl From<BackupError> for RestoreS3Error
Source§fn from(e: BackupError) -> Self
fn from(e: BackupError) -> Self
Source§impl From<Error> for RestoreS3Error
impl From<Error> for RestoreS3Error
Auto Trait Implementations§
impl !RefUnwindSafe for RestoreS3Error
impl !UnwindSafe for RestoreS3Error
impl Forget for RestoreS3Error
impl Freeze for RestoreS3Error
impl Send for RestoreS3Error
impl Sync for RestoreS3Error
impl Unpin for RestoreS3Error
impl UnsafeUnpin for RestoreS3Error
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> AsErrorSource for Twhere
T: Error + 'static,
impl<T> AsErrorSource for Twhere
T: Error + 'static,
Source§fn as_error_source(&self) -> &(dyn Error + 'static)
fn as_error_source(&self) -> &(dyn Error + 'static)
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.