Struct grid_sdk::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 grid_sdk::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 grid_sdk::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");
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for ConstraintViolationError
impl !Send for ConstraintViolationError
impl !Sync for ConstraintViolationError
impl Unpin for ConstraintViolationError
impl !UnwindSafe for ConstraintViolationError