rust_ef_mysql/
type_conversion.rs1use rust_ef::provider::DbValue;
2
3pub fn build_mysql_query<'q>(
11 sql: &'q str,
12 params: &'q [DbValue],
13) -> sqlx::query::Query<'q, sqlx::MySql, sqlx::mysql::MySqlArguments> {
14 let mut query = sqlx::query::<sqlx::MySql>(sql);
15 for param in params {
16 query = match param {
17 DbValue::Null => query.bind(None::<String>),
18 DbValue::Bool(v) => query.bind(*v),
19 DbValue::I16(v) => query.bind(*v),
20 DbValue::I32(v) => query.bind(*v),
21 DbValue::I64(v) => query.bind(*v),
22 DbValue::F32(v) => query.bind(*v),
23 DbValue::F64(v) => query.bind(*v),
24 DbValue::String(v) => query.bind(v.as_str()),
25 DbValue::Bytes(v) => query.bind(v.as_slice()),
26 DbValue::DateTime(dt) => query.bind(dt.to_rfc3339()),
28 DbValue::NaiveDateTime(ndt) => query.bind(ndt.to_string()),
29 DbValue::NaiveDate(nd) => query.bind(nd.to_string()),
30 DbValue::Uuid(u) => query.bind(u.to_string()),
32 DbValue::Decimal(d) => query.bind(d.to_string()),
34 };
35 }
36 query
37}