#[non_exhaustive]pub enum DatabaseErrorKind {
UniqueViolation,
ForeignKeyViolation,
UnableToSendCommand,
SerializationFailure,
ReadOnlyTransaction,
RestrictViolation,
NotNullViolation,
CheckViolation,
ExclusionViolation,
ClosedConnection,
}
Expand description
The kind of database error that occurred.
This is not meant to exhaustively cover all possible errors, but is used to identify errors which are commonly recovered from programmatically. This enum is not intended to be exhaustively matched, and new variants may be added in the future without a major version bump.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
UniqueViolation
A unique constraint was violated.
ForeignKeyViolation
A foreign key constraint was violated.
UnableToSendCommand
The query could not be sent to the database due to a protocol violation.
An example of a case where this would occur is if you attempted to send a query with more than 65000 bind parameters using PostgreSQL.
SerializationFailure
A serializable transaction failed to commit due to a read/write dependency on a concurrent transaction.
Corresponds to SQLSTATE code 40001
This error is only detected for PostgreSQL, as we do not yet support transaction isolation levels for other backends.
ReadOnlyTransaction
The command could not be completed because the transaction was read only.
This error will also be returned for SELECT
statements which attempted
to lock the rows.
RestrictViolation
A restrict constraint was violated.
NotNullViolation
A not null constraint was violated.
CheckViolation
A check constraint was violated.
ExclusionViolation
An exclusion constraint was violated.
ClosedConnection
The connection to the server was unexpectedly closed.
This error is only detected for PostgreSQL and is emitted on a best-effort basis and may be missed.
Trait Implementations§
Source§impl Clone for DatabaseErrorKind
impl Clone for DatabaseErrorKind
Source§fn clone(&self) -> DatabaseErrorKind
fn clone(&self) -> DatabaseErrorKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for DatabaseErrorKind
impl Debug for DatabaseErrorKind
impl Copy for DatabaseErrorKind
Auto Trait Implementations§
impl Freeze for DatabaseErrorKind
impl RefUnwindSafe for DatabaseErrorKind
impl Send for DatabaseErrorKind
impl Sync for DatabaseErrorKind
impl Unpin for DatabaseErrorKind
impl UnwindSafe for DatabaseErrorKind
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.