sea_query_sqlx/
sqlx_mysql.rs1use crate::SqlxValues;
2use sea_query::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::Char(c) => {
47 let _ = args.add(c.map(|c| c.to_string()));
48 }
49 Value::Bytes(b) => {
50 let _ = args.add(b.as_deref());
51 }
52 #[cfg(feature = "with-chrono")]
53 Value::ChronoDate(d) => {
54 let _ = args.add(d);
55 }
56 #[cfg(feature = "with-chrono")]
57 Value::ChronoTime(t) => {
58 let _ = args.add(t);
59 }
60 #[cfg(feature = "with-chrono")]
61 Value::ChronoDateTime(t) => {
62 let _ = args.add(t);
63 }
64 #[cfg(feature = "with-chrono")]
65 Value::ChronoDateTimeUtc(t) => {
66 let _ = args.add(t);
67 }
68 #[cfg(feature = "with-chrono")]
69 Value::ChronoDateTimeLocal(t) => {
70 let _ = args.add(t);
71 }
72 #[cfg(feature = "with-chrono")]
73 Value::ChronoDateTimeWithTimeZone(t) => {
74 let _ = args
75 .add(Value::ChronoDateTimeWithTimeZone(t).chrono_as_naive_utc_in_string());
76 }
77 #[cfg(feature = "with-time")]
78 Value::TimeDate(t) => {
79 let _ = args.add(t);
80 }
81 #[cfg(feature = "with-time")]
82 Value::TimeTime(t) => {
83 let _ = args.add(t);
84 }
85 #[cfg(feature = "with-time")]
86 Value::TimeDateTime(t) => {
87 let _ = args.add(t);
88 }
89 #[cfg(feature = "with-time")]
90 Value::TimeDateTimeWithTimeZone(t) => {
91 let _ = args.add(t);
92 }
93 #[cfg(feature = "with-jiff")]
94 Value::JiffDate(_) => {
95 panic!("Mysql doesn't support Jiff arguments");
96 }
97 #[cfg(feature = "with-jiff")]
98 Value::JiffTime(_) => {
99 panic!("Mysql doesn't support Jiff arguments");
100 }
101 #[cfg(feature = "with-jiff")]
102 Value::JiffDateTime(_) => {
103 panic!("Mysql doesn't support Jiff arguments");
104 }
105 #[cfg(feature = "with-jiff")]
106 Value::JiffTimestamp(_) => {
107 panic!("Mysql doesn't support Jiff arguments");
108 }
109 #[cfg(feature = "with-jiff")]
110 Value::JiffZoned(_) => {
111 panic!("Mysql doesn't support Jiff arguments");
112 }
113 Value::Enum(_) => {
114 panic!("Mysql doesn't support Postgres Enum arguments");
115 }
116 #[cfg(feature = "with-uuid")]
117 Value::Uuid(uuid) => {
118 let _ = args.add(uuid);
119 }
120 #[cfg(feature = "with-rust_decimal")]
121 Value::Decimal(d) => {
122 let _ = args.add(d);
123 }
124 #[cfg(feature = "with-bigdecimal")]
125 Value::BigDecimal(d) => {
126 let _ = args.add(d.as_ref());
127 }
128 #[cfg(feature = "with-json")]
129 Value::Json(j) => {
130 let _ = args.add(j);
131 }
132 #[cfg(feature = "postgres-array")]
133 Value::Array(_) => {
134 panic!("Mysql doesn't support array arguments");
135 }
136 #[cfg(feature = "postgres-vector")]
137 Value::Vector(_) => {
138 panic!("Mysql doesn't support vector arguments");
139 }
140 #[cfg(feature = "with-ipnetwork")]
141 Value::IpNetwork(_) => {
142 panic!("Mysql doesn't support IpNetwork arguments");
143 }
144 #[cfg(feature = "with-mac_address")]
145 Value::MacAddress(_) => {
146 panic!("Mysql doesn't support MacAddress arguments");
147 }
148 #[cfg(feature = "postgres-range")]
149 Value::Range(_) => {
150 panic!("Mysql doesn't support PgRange arguments");
151 }
152 }
153 }
154 args
155 }
156}