#[non_exhaustive]
pub enum DatabaseErrorKind {
    UniqueViolation,
    ForeignKeyViolation,
    UnableToSendCommand,
    SerializationFailure,
    ReadOnlyTransaction,
    NotNullViolation,
    CheckViolation,
    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
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.
§

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.

§

NotNullViolation

A not null constraint was violated.

§

CheckViolation

A check 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

source§

fn clone(&self) -> DatabaseErrorKind

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DatabaseErrorKind

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Copy for DatabaseErrorKind

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoSql for T

source§

fn into_sql<T>(self) -> AsExprOf<Self, T>where Self: AsExpression<T> + Sized, T: SqlType + TypedExpressionType,

Convert self to an expression for Diesel’s query builder. Read more
source§

fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T>where &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,

Convert &self to an expression for Diesel’s query builder. Read more
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V