Struct splinter::error::ConstraintViolationError [−][src]
pub struct ConstraintViolationError { /* fields omitted */ }
Expand description
An error which is returned because of a database constraint violation.
This error indicates that an update to a database failed because it would have violated
a constraint defined as part of the database’s definition. For example, if the database has
a table with a unique column, and an attempt to insert an entry which would cause duplication in
that column, an error with violation type ConstraintViolationType::Unique
will occur.
Although this error maps closely to those generated by relational databases (such as those covered by Diesel), the underlying database does not need to be relational. It could, for example, be a memory or file-backed implementation of a store.
Implementations
Constructs a new ConstraintViolationError
from a specified violation type.
The implementation of std::fmt::Display
for this error will use the
standard display of the ConstraintViolationType for its message.
Examples
use splinter::error::{ ConstraintViolationError, ConstraintViolationType };
let constraint_violation_error = ConstraintViolationError::with_violation_type(
ConstraintViolationType::Unique
);
assert_eq!(format!("{}", constraint_violation_error), "Unique constraint violated");
pub fn from_source_with_violation_type(
violation_type: ConstraintViolationType,
source: Box<dyn Error>
) -> Self
pub fn from_source_with_violation_type(
violation_type: ConstraintViolationType,
source: Box<dyn Error>
) -> Self
Constructs a new ConstraintViolationError
from a specified source error and violation type.
The implementation of std::fmt::Display
for this error will simply pass through the
display of the source message unmodified.
Examples
use splinter::error::{ ConstraintViolationError, ConstraintViolationType };
let db_err = std::io::Error::new(std::io::ErrorKind::Other, "db error");
let constraint_violation_error = ConstraintViolationError::from_source_with_violation_type(
ConstraintViolationType::Unique,
Box::new(db_err)
);
assert_eq!(format!("{}", constraint_violation_error), "db error");
Returns the violation type that triggered the error.
Trait Implementations
Performs the conversion.
Auto Trait Implementations
impl !RefUnwindSafe for ConstraintViolationError
impl !Send for ConstraintViolationError
impl !Sync for ConstraintViolationError
impl Unpin for ConstraintViolationError
impl !UnwindSafe for ConstraintViolationError
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
Convert self
to an expression for Diesel’s query builder. Read more
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression where
&'a Self: AsExpression<T>,
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression where
&'a Self: AsExpression<T>,
Convert &self
to an expression for Diesel’s query builder. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more