pub enum CloudHomeError {
NotFound(String),
AlreadyExists(String),
Configuration(String),
Transport(String),
CleanupFailed {
operation: Box<CloudHomeError>,
cleanup: Box<CloudHomeError>,
},
UnresolvedOutcome {
operation: Box<CloudHomeError>,
readback: Box<CloudHomeError>,
},
Io(Error),
}Expand description
Errors from raw cloud storage operations.
Variants§
NotFound(String)
AlreadyExists(String)
Configuration(String)
The cloud home is misconfigured or its credentials are missing or invalid: a bucket/folder/drive that isn’t set, credentials absent from the keyring, a provider unsupported by this build, OAuth that needs re-authorization. The user must fix the configuration; retrying the same operation cannot succeed.
Transport(String)
The cloud backend or the network to it failed: a request error, a non-2xx status, a malformed response. Transient — a later attempt may succeed.
CleanupFailed
UnresolvedOutcome
Io(Error)
Implementations§
Source§impl CloudHomeError
impl CloudHomeError
Sourcepub fn is_retryable(&self) -> bool
pub fn is_retryable(&self) -> bool
Whether the failure is transient — worth retrying the operation unchanged —
or a fault that will not resolve until the missing object appears or the user
fixes the configuration. A transport or local-I/O failure is transient
(true); a missing object, a misconfiguration, or absent/invalid credentials
are not (false).
pub fn cleanup_causes(&self) -> Option<(&CloudHomeError, &CloudHomeError)>
Trait Implementations§
Source§impl Debug for CloudHomeError
impl Debug for CloudHomeError
Source§impl Display for CloudHomeError
impl Display for CloudHomeError
Source§impl Error for CloudHomeError
impl Error for CloudHomeError
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
Source§impl From<CloudHomeError> for BootstrapError
impl From<CloudHomeError> for BootstrapError
Source§fn from(source: CloudHomeError) -> Self
fn from(source: CloudHomeError) -> Self
Source§impl From<CloudHomeError> for CloudFileReadError
impl From<CloudHomeError> for CloudFileReadError
Source§fn from(source: CloudHomeError) -> CloudFileReadError
fn from(source: CloudHomeError) -> CloudFileReadError
Source§impl From<CloudHomeError> for CloudHeadCreateError
impl From<CloudHomeError> for CloudHeadCreateError
Source§fn from(source: CloudHomeError) -> CloudHeadCreateError
fn from(source: CloudHomeError) -> CloudHeadCreateError
Source§impl From<CloudHomeError> for CloudHeadReplaceError
impl From<CloudHomeError> for CloudHeadReplaceError
Source§fn from(source: CloudHomeError) -> CloudHeadReplaceError
fn from(source: CloudHomeError) -> CloudHeadReplaceError
Source§impl From<CloudHomeError> for SyncError
impl From<CloudHomeError> for SyncError
Source§fn from(source: CloudHomeError) -> Self
fn from(source: CloudHomeError) -> Self
Source§impl From<Error> for CloudHomeError
impl From<Error> for CloudHomeError
Source§fn from(source: Error) -> CloudHomeError
fn from(source: Error) -> CloudHomeError
Auto Trait Implementations§
impl Freeze for CloudHomeError
impl !RefUnwindSafe for CloudHomeError
impl Send for CloudHomeError
impl Sync for CloudHomeError
impl Unpin for CloudHomeError
impl UnsafeUnpin for CloudHomeError
impl !UnwindSafe for CloudHomeError
Blanket Implementations§
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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more