pub trait ToSQLData {
// Required method
fn to_sql_fmt(&self) -> SQLDataTypes;
}Expand description
A trait that formats the input data to match SQLDataTypes
Already implemented for &[u8], Vec<u8>, &str,String, i8, i16, i32, i64, f32, f64, and chrono::NaiveDateTime, as well as, their Option<> and Box<> variants
To implement a local enum:
enum MyEnum {
Name(String),
Age(i64)
}
impl ToSQLData for MyEnum {
fn to_sql_fmt(&self) -> SQLDataTypes {
match self {
MyEnum::Name(val) => SQLDataTypes::Varchar(val.into()),
MyEnum::Age(val) => SQLDataTypes::Number(val.into()),
}
}
}To implement a foreign enum:
use some_crate::SomeForeignType;
struct MyType<'a>(&'a SomeForeignType);
impl ToSQLData for MyType<'_> {
fn to_sql_fmt(&'_ self) -> SQLDataTypes {
match self {
MyType(SomeForeignType::Int(val)) => SQLDataTypes::Number(*val),
MyType(SomeForeignType::Float(val)) => SQLDataTypes::Float(*val),
MyType(SomeForeignType::String(val)) => SQLDataTypes::Varchar(val.to_owned()),
MyType(SomeForeignType::None) => SQLDataTypes::NULL,
}
}
}