sea_query_sqlx/
sqlx_mysql.rs1use crate::SqlxValues;
2use sea_query::{OptionEnum, Value};
3
4impl sqlx::IntoArguments<'_, sqlx::mysql::MySql> for SqlxValues {
5 fn into_arguments(self) -> sqlx::mysql::MySqlArguments {
6 let mut args = sqlx::mysql::MySqlArguments::default();
7 for arg in self.0.into_iter() {
8 use sqlx::Arguments;
9 match arg {
10 Value::Bool(b) => {
11 let _ = args.add(b);
12 }
13 Value::TinyInt(i) => {
14 let _ = args.add(i);
15 }
16 Value::SmallInt(i) => {
17 let _ = args.add(i);
18 }
19 Value::Int(i) => {
20 let _ = args.add(i);
21 }
22 Value::BigInt(i) => {
23 let _ = args.add(i);
24 }
25 Value::TinyUnsigned(i) => {
26 let _ = args.add(i);
27 }
28 Value::SmallUnsigned(i) => {
29 let _ = args.add(i);
30 }
31 Value::Unsigned(i) => {
32 let _ = args.add(i);
33 }
34 Value::BigUnsigned(i) => {
35 let _ = args.add(i);
36 }
37 Value::Float(f) => {
38 let _ = args.add(f);
39 }
40 Value::Double(d) => {
41 let _ = args.add(d);
42 }
43 Value::String(s) => {
44 let _ = args.add(s.as_deref());
45 }
46 Value::Enum(e) => {
47 let value = match e {
48 OptionEnum::Some(v) => Some(v.value.into_owned()),
49 OptionEnum::None(_) => None,
50 };
51 let _ = args.add(value);
52 }
53 Value::Char(c) => {
54 let _ = args.add(c.map(|c| c.to_string()));
55 }
56 Value::Bytes(b) => {
57 let _ = args.add(b.as_deref());
58 }
59 #[cfg(feature = "with-chrono")]
60 Value::ChronoDate(d) => {
61 let _ = args.add(d);
62 }
63 #[cfg(feature = "with-chrono")]
64 Value::ChronoTime(t) => {
65 let _ = args.add(t);
66 }
67 #[cfg(feature = "with-chrono")]
68 Value::ChronoDateTime(t) => {
69 let _ = args.add(t);
70 }
71 #[cfg(feature = "with-chrono")]
72 Value::ChronoDateTimeUtc(t) => {
73 let _ = args.add(t);
74 }
75 #[cfg(feature = "with-chrono")]
76 Value::ChronoDateTimeLocal(t) => {
77 let _ = args.add(t);
78 }
79 #[cfg(feature = "with-chrono")]
80 Value::ChronoDateTimeWithTimeZone(t) => {
81 let _ = args
82 .add(Value::ChronoDateTimeWithTimeZone(t).chrono_as_naive_utc_in_string());
83 }
84 #[cfg(feature = "with-time")]
85 Value::TimeDate(t) => {
86 let _ = args.add(t);
87 }
88 #[cfg(feature = "with-time")]
89 Value::TimeTime(t) => {
90 let _ = args.add(t);
91 }
92 #[cfg(feature = "with-time")]
93 Value::TimeDateTime(t) => {
94 let _ = args.add(t);
95 }
96 #[cfg(feature = "with-time")]
97 Value::TimeDateTimeWithTimeZone(t) => {
98 let _ = args.add(t);
99 }
100 #[cfg(feature = "with-uuid")]
101 Value::Uuid(uuid) => {
102 let _ = args.add(uuid);
103 }
104 #[cfg(feature = "with-rust_decimal")]
105 Value::Decimal(d) => {
106 let _ = args.add(d);
107 }
108 #[cfg(feature = "with-bigdecimal")]
109 Value::BigDecimal(d) => {
110 let _ = args.add(d.as_deref());
111 }
112 #[cfg(feature = "with-json")]
113 Value::Json(j) => {
114 let _ = args.add(j.as_deref());
115 }
116 #[cfg(feature = "postgres-array")]
117 Value::Array(_, _) => {
118 panic!("Mysql doesn't support array arguments");
119 }
120 #[cfg(feature = "postgres-vector")]
121 Value::Vector(_) => {
122 panic!("Mysql doesn't support vector arguments");
123 }
124 #[cfg(feature = "with-ipnetwork")]
125 Value::IpNetwork(_) => {
126 panic!("Mysql doesn't support IpNetwork arguments");
127 }
128 #[cfg(feature = "with-mac_address")]
129 Value::MacAddress(_) => {
130 panic!("Mysql doesn't support MacAddress arguments");
131 } }
136 }
137 args
138 }
139}