Skip to main content

ToSQLData

Trait ToSQLData 

Source
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,
        }
    }
}

Required Methods§

Implementations on Foreign Types§

Source§

impl ToSQLData for &str

Source§

impl ToSQLData for &String

Source§

impl ToSQLData for &[u8]

Source§

impl ToSQLData for Option<&str>

Source§

impl ToSQLData for Option<&String>

Source§

impl ToSQLData for Option<&[u8]>

Source§

impl ToSQLData for Option<SQLDataTypes>

Source§

impl ToSQLData for Option<f32>

Source§

impl ToSQLData for Option<f64>

Source§

impl ToSQLData for Option<i8>

Source§

impl ToSQLData for Option<i16>

Source§

impl ToSQLData for Option<i32>

Source§

impl ToSQLData for Option<i64>

Source§

impl ToSQLData for Option<usize>

Source§

impl ToSQLData for Option<Box<&str>>

Source§

impl ToSQLData for Option<Box<&String>>

Source§

impl ToSQLData for Option<Box<&[u8]>>

Source§

impl ToSQLData for Option<Box<SQLDataTypes>>

Source§

impl ToSQLData for Option<Box<f32>>

Source§

impl ToSQLData for Option<Box<f64>>

Source§

impl ToSQLData for Option<Box<i8>>

Source§

impl ToSQLData for Option<Box<i16>>

Source§

impl ToSQLData for Option<Box<i32>>

Source§

impl ToSQLData for Option<Box<i64>>

Source§

impl ToSQLData for Option<Box<usize>>

Source§

impl ToSQLData for Option<Box<String>>

Source§

impl ToSQLData for Option<Box<Vec<u8>>>

Source§

impl ToSQLData for Option<Box<NaiveDateTime>>

Source§

impl ToSQLData for Option<String>

Source§

impl ToSQLData for Option<Vec<u8>>

Source§

impl ToSQLData for Option<NaiveDateTime>

Source§

impl ToSQLData for f32

Source§

impl ToSQLData for f64

Source§

impl ToSQLData for i8

Source§

impl ToSQLData for i16

Source§

impl ToSQLData for i32

Source§

impl ToSQLData for i64

Source§

impl ToSQLData for usize

Source§

impl ToSQLData for Box<&str>

Source§

impl ToSQLData for Box<&String>

Source§

impl ToSQLData for Box<&[u8]>

Source§

impl ToSQLData for Box<SQLDataTypes>

Source§

impl ToSQLData for Box<f32>

Source§

impl ToSQLData for Box<f64>

Source§

impl ToSQLData for Box<i8>

Source§

impl ToSQLData for Box<i16>

Source§

impl ToSQLData for Box<i32>

Source§

impl ToSQLData for Box<i64>

Source§

impl ToSQLData for Box<usize>

Source§

impl ToSQLData for Box<String>

Source§

impl ToSQLData for Box<Vec<u8>>

Source§

impl ToSQLData for Box<NaiveDateTime>

Source§

impl ToSQLData for String

Source§

impl ToSQLData for Vec<u8>

Source§

impl ToSQLData for NaiveDateTime

Implementors§