#[non_exhaustive]pub enum CoreStorageError {
NotFound {
path: String,
},
AlreadyExists {
path: String,
},
CasConflict,
Io(String),
Internal(Box<dyn Error + Send + Sync>),
}Expand description
Domain error type for all storage port operations.
Adapters map backend-specific errors (e.g., git2::Error, std::io::Error)
into these variants before returning. Domain logic never sees infrastructure
error types.
Usage:
ⓘ
use auths_core::ports::storage::StorageError;
fn handle(err: StorageError) {
match err {
StorageError::NotFound { path } => eprintln!("missing: {path}"),
StorageError::AlreadyExists { path } => eprintln!("duplicate: {path}"),
StorageError::CasConflict => eprintln!("concurrent modification"),
StorageError::Io(msg) => eprintln!("I/O: {msg}"),
StorageError::Internal(inner) => eprintln!("bug: {inner}"),
}
}Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
NotFound
The item was not found.
AlreadyExists
An item already exists at this path.
CasConflict
Optimistic concurrency conflict; retry the operation.
Io(String)
An I/O error occurred.
Internal(Box<dyn Error + Send + Sync>)
An unexpected internal error.
Implementations§
Source§impl StorageError
impl StorageError
Sourcepub fn not_found(path: impl Display) -> StorageError
pub fn not_found(path: impl Display) -> StorageError
Convenience constructor for NotFound.
Sourcepub fn already_exists(path: impl Display) -> StorageError
pub fn already_exists(path: impl Display) -> StorageError
Convenience constructor for AlreadyExists.
Trait Implementations§
Source§impl AuthsErrorInfo for StorageError
impl AuthsErrorInfo for StorageError
Source§fn error_code(&self) -> &'static str
fn error_code(&self) -> &'static str
Returns a unique error code string for this error variant.
Source§fn suggestion(&self) -> Option<&'static str>
fn suggestion(&self) -> Option<&'static str>
Returns an optional actionable suggestion for resolving the error.
Source§impl Debug for StorageError
impl Debug for StorageError
Source§impl Display for StorageError
impl Display for StorageError
Source§impl Error for StorageError
impl Error for StorageError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl From<KelStorageError> for StorageError
impl From<KelStorageError> for StorageError
Source§fn from(err: KelStorageError) -> StorageError
fn from(err: KelStorageError) -> StorageError
Converts to this type from the input type.
Auto Trait Implementations§
impl !RefUnwindSafe for StorageError
impl !UnwindSafe for StorageError
impl Freeze for StorageError
impl Send for StorageError
impl Sync for StorageError
impl Unpin for StorageError
impl UnsafeUnpin for StorageError
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
Mutably borrows from an owned value. Read more
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> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.