sea_query_sqlx/
sqlx_sqlite.rs1use crate::SqlxValues;
2use sea_query::{OptionEnum, Value};
3
4impl<'q> sqlx::IntoArguments<'q, sqlx::sqlite::Sqlite> for SqlxValues {
5 fn into_arguments(self) -> sqlx::sqlite::SqliteArguments<'q> {
6 let mut args = sqlx::sqlite::SqliteArguments::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
36 .add(i.map(|i| <i64 as std::convert::TryFrom<u64>>::try_from(i).unwrap()));
37 }
38 Value::Float(f) => {
39 let _ = args.add(f);
40 }
41 Value::Double(d) => {
42 let _ = args.add(d);
43 }
44 Value::String(s) => {
45 let _ = args.add(s);
46 }
47 Value::Enum(e) => {
48 let value = match e {
49 OptionEnum::Some(v) => Some(v.value.into_owned()),
50 OptionEnum::None(_) => None,
51 };
52 let _ = args.add(value);
53 }
54 Value::Char(c) => {
55 let _ = args.add(c.map(|c| c.to_string()));
56 }
57 Value::Bytes(b) => {
58 let _ = args.add(b);
59 }
60 #[cfg(feature = "with-chrono")]
61 Value::ChronoDate(d) => {
62 let _ = args.add(d);
63 }
64 #[cfg(feature = "with-chrono")]
65 Value::ChronoTime(t) => {
66 let _ = args.add(t);
67 }
68 #[cfg(feature = "with-chrono")]
69 Value::ChronoDateTime(t) => {
70 let _ = args.add(t);
71 }
72 #[cfg(feature = "with-chrono")]
73 Value::ChronoDateTimeUtc(t) => {
74 let _ = args.add(t);
75 }
76 #[cfg(feature = "with-chrono")]
77 Value::ChronoDateTimeLocal(t) => {
78 let _ = args.add(t);
79 }
80 #[cfg(feature = "with-chrono")]
81 Value::ChronoDateTimeWithTimeZone(t) => {
82 let _ = args.add(t);
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(decimal) => {
106 let _ = args.add(decimal.map(|d| d.to_string()));
107 }
108 #[cfg(feature = "with-bigdecimal")]
109 Value::BigDecimal(big_decimal) => {
110 use sea_query::prelude::bigdecimal::ToPrimitive;
111 let _ = args.add(big_decimal.map(|d| d.to_string()));
112 }
113 #[cfg(feature = "with-json")]
114 Value::Json(j) => {
115 let _ = args.add(j.map(|j| *j));
116 }
117 #[cfg(feature = "with-ipnetwork")]
118 Value::IpNetwork(_) => {
119 panic!("Sqlite doesn't support IpNetwork arguments");
120 }
121 #[cfg(feature = "with-mac_address")]
122 Value::MacAddress(_) => {
123 panic!("Sqlite doesn't support MacAddress arguments");
124 }
125 #[cfg(feature = "postgres-array")]
126 Value::Array(_, _) => {
127 panic!("Sqlite doesn't support array arguments");
128 }
129 #[cfg(feature = "postgres-vector")]
130 Value::Vector(_) => {
131 panic!("Sqlite doesn't support vector arguments");
132 } }
137 }
138 args
139 }
140}