Add DbErr::Type
This commit is contained in:
parent
388bf2cfca
commit
f1ef7d9c47
@ -191,7 +191,7 @@ impl ActiveEnum {
|
|||||||
fn try_from_value(v: &Self::Value) -> Result<Self, sea_orm::DbErr> {
|
fn try_from_value(v: &Self::Value) -> Result<Self, sea_orm::DbErr> {
|
||||||
match #val {
|
match #val {
|
||||||
#( #variant_values => Ok(Self::#variant_idents), )*
|
#( #variant_values => Ok(Self::#variant_idents), )*
|
||||||
_ => Err(sea_orm::DbErr::Query(format!(
|
_ => Err(sea_orm::DbErr::Type(format!(
|
||||||
"unexpected value for {} enum: {}",
|
"unexpected value for {} enum: {}",
|
||||||
stringify!(#ident),
|
stringify!(#ident),
|
||||||
v
|
v
|
||||||
|
@ -15,7 +15,7 @@ use sea_query::{Nullable, Value, ValueType};
|
|||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use sea_orm::entity::prelude::*;
|
/// use sea_orm::entity::prelude::*;
|
||||||
///
|
///
|
||||||
/// // Using the derive macro
|
/// // Using the derive macro
|
||||||
/// #[derive(Debug, PartialEq, DeriveActiveEnum)]
|
/// #[derive(Debug, PartialEq, DeriveActiveEnum)]
|
||||||
/// #[sea_orm(rs_type = "String", db_type = "String(Some(1))")]
|
/// #[sea_orm(rs_type = "String", db_type = "String(Some(1))")]
|
||||||
@ -51,7 +51,7 @@ use sea_query::{Nullable, Value, ValueType};
|
|||||||
/// match v.as_ref() {
|
/// match v.as_ref() {
|
||||||
/// "B" => Ok(Self::Big),
|
/// "B" => Ok(Self::Big),
|
||||||
/// "S" => Ok(Self::Small),
|
/// "S" => Ok(Self::Small),
|
||||||
/// _ => Err(DbErr::Query(format!(
|
/// _ => Err(DbErr::Type(format!(
|
||||||
/// "unexpected value for Category enum: {}",
|
/// "unexpected value for Category enum: {}",
|
||||||
/// v
|
/// v
|
||||||
/// ))),
|
/// ))),
|
||||||
@ -138,7 +138,7 @@ mod tests {
|
|||||||
match v.as_ref() {
|
match v.as_ref() {
|
||||||
"B" => Ok(Self::Big),
|
"B" => Ok(Self::Big),
|
||||||
"S" => Ok(Self::Small),
|
"S" => Ok(Self::Small),
|
||||||
_ => Err(DbErr::Query(format!(
|
_ => Err(DbErr::Type(format!(
|
||||||
"unexpected value for Category enum: {}",
|
"unexpected value for Category enum: {}",
|
||||||
v
|
v
|
||||||
))),
|
))),
|
||||||
@ -166,7 +166,7 @@ mod tests {
|
|||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
Category::try_from_value(&"A".to_owned()).err(),
|
Category::try_from_value(&"A".to_owned()).err(),
|
||||||
Some(DbErr::Query(
|
Some(DbErr::Type(
|
||||||
"unexpected value for Category enum: A".to_owned()
|
"unexpected value for Category enum: A".to_owned()
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
@ -180,7 +180,7 @@ mod tests {
|
|||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
DeriveCategory::try_from_value(&"A".to_owned()).err(),
|
DeriveCategory::try_from_value(&"A".to_owned()).err(),
|
||||||
Some(DbErr::Query(
|
Some(DbErr::Type(
|
||||||
"unexpected value for DeriveCategory enum: A".to_owned()
|
"unexpected value for DeriveCategory enum: A".to_owned()
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
@ -221,7 +221,7 @@ mod tests {
|
|||||||
assert_eq!($ident::try_from_value(&-10).ok(), Some($ident::Negative));
|
assert_eq!($ident::try_from_value(&-10).ok(), Some($ident::Negative));
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
$ident::try_from_value(&2).err(),
|
$ident::try_from_value(&2).err(),
|
||||||
Some(DbErr::Query(format!(
|
Some(DbErr::Type(format!(
|
||||||
"unexpected value for {} enum: 2",
|
"unexpected value for {} enum: 2",
|
||||||
stringify!($ident)
|
stringify!($ident)
|
||||||
)))
|
)))
|
||||||
@ -257,7 +257,7 @@ mod tests {
|
|||||||
assert_eq!($ident::try_from_value(&0).ok(), Some($ident::Small));
|
assert_eq!($ident::try_from_value(&0).ok(), Some($ident::Small));
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
$ident::try_from_value(&2).err(),
|
$ident::try_from_value(&2).err(),
|
||||||
Some(DbErr::Query(format!(
|
Some(DbErr::Type(format!(
|
||||||
"unexpected value for {} enum: 2",
|
"unexpected value for {} enum: 2",
|
||||||
stringify!($ident)
|
stringify!($ident)
|
||||||
)))
|
)))
|
||||||
|
14
src/error.rs
14
src/error.rs
@ -1,10 +1,23 @@
|
|||||||
|
/// Represents all the errors in SeaORM.
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq)]
|
||||||
pub enum DbErr {
|
pub enum DbErr {
|
||||||
|
/// Error occurred while connecting to database engine.
|
||||||
Conn(String),
|
Conn(String),
|
||||||
|
|
||||||
|
/// Error occurred while executing SQL statement.
|
||||||
Exec(String),
|
Exec(String),
|
||||||
|
|
||||||
|
/// Error occurred while querying SQL statement.
|
||||||
Query(String),
|
Query(String),
|
||||||
|
|
||||||
|
/// Error occurred while updating a non-existing row in database.
|
||||||
RecordNotFound(String),
|
RecordNotFound(String),
|
||||||
|
|
||||||
|
/// Error occurred while performing custom validation logics in [ActiveModelBehavior](crate::ActiveModelBehavior)
|
||||||
Custom(String),
|
Custom(String),
|
||||||
|
|
||||||
|
/// Error occurred while parsing value into [ActiveEnum](crate::ActiveEnum)
|
||||||
|
Type(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl std::error::Error for DbErr {}
|
impl std::error::Error for DbErr {}
|
||||||
@ -17,6 +30,7 @@ impl std::fmt::Display for DbErr {
|
|||||||
Self::Query(s) => write!(f, "Query Error: {}", s),
|
Self::Query(s) => write!(f, "Query Error: {}", s),
|
||||||
Self::RecordNotFound(s) => write!(f, "RecordNotFound Error: {}", s),
|
Self::RecordNotFound(s) => write!(f, "RecordNotFound Error: {}", s),
|
||||||
Self::Custom(s) => write!(f, "Custom Error: {}", s),
|
Self::Custom(s) => write!(f, "Custom Error: {}", s),
|
||||||
|
Self::Type(s) => write!(f, "Type Error: {}", s),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user