pub enum CloudHomeError {
Show 13 variants
NotFound(String),
AlreadyExists(String),
SlotCollision(String),
Configuration(String),
Transport(String),
Backend {
kind: StorageBackendFailure,
operation: String,
source: Box<dyn Error + Send + Sync>,
},
CleanupFailed {
operation: Box<CloudHomeError>,
cleanup: Box<CloudHomeError>,
},
UnresolvedOutcome {
operation: Box<CloudHomeError>,
settlement: Box<CloudHomeError>,
},
Io(Error),
Local(FileError),
BlobSource(StorageError),
Protocol(StorageError),
InvalidBlobSource(String),
}Expand description
Errors from raw cloud storage operations.
Variants§
NotFound(String)
AlreadyExists(String)
SlotCollision(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.
Backend
CleanupFailed
UnresolvedOutcome
Io(Error)
Local(FileError)
BlobSource(StorageError)
Protocol(StorageError)
InvalidBlobSource(String)
Implementations§
Source§impl CloudHomeError
impl CloudHomeError
pub fn backend( kind: StorageBackendFailure, operation: impl Into<String>, source: impl Error + Send + Sync + 'static, ) -> Self
pub fn configuration( operation: impl Into<String>, source: impl Error + Send + Sync + 'static, ) -> Self
pub fn transport( operation: impl Into<String>, source: impl Error + Send + Sync + 'static, ) -> Self
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 backend_failure(&self) -> Option<StorageBackendFailure>
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 CloudFileReadError
impl From<CloudHomeError> for CloudFileReadError
Source§fn from(source: CloudHomeError) -> Self
fn from(source: CloudHomeError) -> Self
Source§impl From<CloudHomeError> for StorageError
impl From<CloudHomeError> for StorageError
Source§fn from(e: CloudHomeError) -> Self
fn from(e: CloudHomeError) -> Self
Source§impl From<CloudHomeError> for StorageSetupError
impl From<CloudHomeError> for StorageSetupError
Source§fn from(source: CloudHomeError) -> Self
fn from(source: CloudHomeError) -> Self
Source§impl From<Error> for CloudHomeError
impl From<Error> for CloudHomeError
Source§impl From<FileError> for CloudHomeError
impl From<FileError> for CloudHomeError
Source§impl From<StorageError> for CloudHomeError
Slot and reference validation lives on the protocol values and reports
coven_protocol::objects::StorageError; provider code folds it into its
own configuration vocabulary.
impl From<StorageError> for CloudHomeError
Slot and reference validation lives on the protocol values and reports
coven_protocol::objects::StorageError; provider code folds it into its
own configuration vocabulary.
Source§fn from(error: StorageError) -> Self
fn from(error: StorageError) -> Self
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