Skip to main content

sea_query_sqlx/
sqlx_mysql.rs

1use 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-uuid")]
94                Value::Uuid(uuid) => {
95                    let _ = args.add(uuid);
96                }
97                #[cfg(feature = "with-rust_decimal")]
98                Value::Decimal(d) => {
99                    let _ = args.add(d);
100                }
101                #[cfg(feature = "with-bigdecimal")]
102                Value::BigDecimal(d) => {
103                    let _ = args.add(d.as_deref());
104                }
105                #[cfg(feature = "with-json")]
106                Value::Json(j) => {
107                    let _ = args.add(j.as_deref());
108                }
109                #[cfg(feature = "postgres-array")]
110                Value::Array(_, _) => {
111                    panic!("Mysql doesn't support array arguments");
112                }
113                #[cfg(feature = "postgres-vector")]
114                Value::Vector(_) => {
115                    panic!("Mysql doesn't support vector arguments");
116                }
117                #[cfg(feature = "with-ipnetwork")]
118                Value::IpNetwork(_) => {
119                    panic!("Mysql doesn't support IpNetwork arguments");
120                }
121                #[cfg(feature = "with-mac_address")]
122                Value::MacAddress(_) => {
123                    panic!("Mysql doesn't support MacAddress arguments");
124                } /* #[cfg(feature = "postgres-range")]
125                  Value::Range(_) => {
126                      panic!("Mysql doesn't support PgRange arguments");
127                  } */
128            }
129        }
130        args
131    }
132}