pub enum DbErr {
Show 22 variants
ConnectionAcquire(ConnAcquireErr),
TryIntoErr {
from: &'static str,
into: &'static str,
source: Arc<dyn Error + Sync + Send>,
},
Conn(RuntimeErr),
Exec(RuntimeErr),
Query(RuntimeErr),
ConvertFromU64(&'static str),
UnpackInsertId,
UpdateGetPrimaryKey,
RecordNotFound(String),
AttrNotSet(String),
Custom(String),
Type(String),
Json(String),
Migration(String),
RecordNotInserted,
RecordNotUpdated,
BackendNotSupported {
db: &'static str,
ctx: &'static str,
},
KeyArityMismatch {
expected: u8,
received: u8,
},
PrimaryKeyNotSet {
ctx: &'static str,
},
RbacError(String),
AccessDenied {
permission: String,
resource: String,
},
MutexPoisonError,
}Expand description
An error from unsuccessful database operations
Variants§
ConnectionAcquire(ConnAcquireErr)
This error can happen when the connection pool is fully-utilized
TryIntoErr
Runtime type conversion error
Fields
Conn(RuntimeErr)
There was a problem with the database connection
Exec(RuntimeErr)
An operation did not execute successfully
Query(RuntimeErr)
An error occurred while performing a query
ConvertFromU64(&'static str)
Type error: the specified type cannot be converted from u64. This is not a runtime error.
UnpackInsertId
After an insert statement it was impossible to retrieve the last_insert_id
UpdateGetPrimaryKey
When updating, a model should know its primary key to check if the record has been correctly updated, otherwise this error will occur
RecordNotFound(String)
The record was not found in the database
AttrNotSet(String)
Thrown by TryFrom<ActiveModel>, which assumes all attributes are set/unchanged
Custom(String)
A custom error
Type(String)
Error occurred while parsing value as target type
Json(String)
Error occurred while parsing json value as target type
Migration(String)
A migration error
RecordNotInserted
None of the records are inserted, that probably means all of them conflict with existing records in the table
RecordNotUpdated
None of the records are updated, that means a WHERE condition has no matches. May be the table is empty or the record does not exist
BackendNotSupported
This operation is not supported by the database backend
KeyArityMismatch
(Primary) Key arity mismatch
PrimaryKeyNotSet
Primay key not set for update / delete
RbacError(String)
Error while running RBAC checks
AccessDenied
Access denied after running RBAC checks
MutexPoisonError
Mutex was poisoned by another thread
Implementations§
Trait Implementations§
Source§impl Error for DbErr
impl Error for DbErr
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<TryGetError> for DbErr
impl From<TryGetError> for DbErr
Source§fn from(e: TryGetError) -> DbErr
fn from(e: TryGetError) -> DbErr
impl Eq for DbErr
Auto Trait Implementations§
impl Freeze for DbErr
impl !RefUnwindSafe for DbErr
impl Send for DbErr
impl Sync for DbErr
impl Unpin for DbErr
impl !UnwindSafe for DbErr
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)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 more