Struct splinter::error::ConstraintViolationError
source · [−]pub struct ConstraintViolationError { /* private fields */ }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
sourceimpl ConstraintViolationError
impl ConstraintViolationError
sourcepub fn with_violation_type(violation_type: ConstraintViolationType) -> Self
pub fn with_violation_type(violation_type: ConstraintViolationType) -> Self
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");sourcepub 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");sourcepub fn violation_type(&self) -> &ConstraintViolationType
pub fn violation_type(&self) -> &ConstraintViolationType
Returns the violation type that triggered the error.
Trait Implementations
sourceimpl Debug for ConstraintViolationError
impl Debug for ConstraintViolationError
sourceimpl Display for ConstraintViolationError
impl Display for ConstraintViolationError
sourceimpl Error for ConstraintViolationError
impl Error for ConstraintViolationError
sourcefn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
sourcefn backtrace(&self) -> Option<&Backtrace>
fn backtrace(&self) -> Option<&Backtrace>
backtrace)Returns a stack backtrace, if available, of where this error occurred. Read more
1.0.0 · sourcefn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
sourceimpl From<ConstraintViolationError> for RoleBasedAuthorizationStoreError
impl From<ConstraintViolationError> for RoleBasedAuthorizationStoreError
sourcefn from(err: ConstraintViolationError) -> Self
fn from(err: ConstraintViolationError) -> Self
Converts to this type from the input type.
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<P, N> IntoBytes<P> for N where
P: Message + FromNative<N>,
impl<P, N> IntoBytes<P> for N where
P: Message + FromNative<N>,
fn into_bytes(self) -> Result<Vec<u8, Global>, ProtoConversionError>
sourceimpl<N, P> IntoNative<N> for P where
N: FromProto<P>,
impl<N, P> IntoNative<N> for P where
N: FromProto<P>,
fn into_native(self) -> Result<N, ProtoConversionError>
sourceimpl<N, P> IntoProto<P> for N where
P: FromNative<N>,
impl<N, P> IntoProto<P> for N where
P: FromNative<N>,
fn into_proto(self) -> Result<P, ProtoConversionError>
sourceimpl<T> IntoSql for T
impl<T> IntoSql for T
sourcefn into_sql<T>(self) -> Self::Expression where
Self: AsExpression<T>,
fn into_sql<T>(self) -> Self::Expression where
Self: AsExpression<T>,
Convert self to an expression for Diesel’s query builder. Read more
sourcefn 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
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more