sql_builder/
arg.rs

1use crate::quote;
2use std::borrow::{Cow, ToOwned};
3
4pub trait SqlArg {
5    fn sql_arg(&self) -> String;
6}
7
8impl SqlArg for str {
9    fn sql_arg(&self) -> String {
10        quote(self)
11    }
12}
13
14impl SqlArg for &str {
15    fn sql_arg(&self) -> String {
16        quote(self)
17    }
18}
19
20impl SqlArg for Cow<'_, str> {
21    fn sql_arg(&self) -> String {
22        quote(self[..].to_owned())
23    }
24}
25
26impl SqlArg for String {
27    fn sql_arg(&self) -> String {
28        quote(self)
29    }
30}
31
32impl SqlArg for i8 {
33    fn sql_arg(&self) -> String {
34        self.to_string()
35    }
36}
37
38impl SqlArg for &i8 {
39    fn sql_arg(&self) -> String {
40        self.to_string()
41    }
42}
43
44impl SqlArg for u8 {
45    fn sql_arg(&self) -> String {
46        self.to_string()
47    }
48}
49
50impl SqlArg for &u8 {
51    fn sql_arg(&self) -> String {
52        self.to_string()
53    }
54}
55
56impl SqlArg for i16 {
57    fn sql_arg(&self) -> String {
58        self.to_string()
59    }
60}
61
62impl SqlArg for &i16 {
63    fn sql_arg(&self) -> String {
64        self.to_string()
65    }
66}
67
68impl SqlArg for u16 {
69    fn sql_arg(&self) -> String {
70        self.to_string()
71    }
72}
73
74impl SqlArg for &u16 {
75    fn sql_arg(&self) -> String {
76        self.to_string()
77    }
78}
79
80impl SqlArg for i32 {
81    fn sql_arg(&self) -> String {
82        self.to_string()
83    }
84}
85
86impl SqlArg for &i32 {
87    fn sql_arg(&self) -> String {
88        self.to_string()
89    }
90}
91
92impl SqlArg for u32 {
93    fn sql_arg(&self) -> String {
94        self.to_string()
95    }
96}
97
98impl SqlArg for &u32 {
99    fn sql_arg(&self) -> String {
100        self.to_string()
101    }
102}
103
104impl SqlArg for i64 {
105    fn sql_arg(&self) -> String {
106        self.to_string()
107    }
108}
109
110impl SqlArg for &i64 {
111    fn sql_arg(&self) -> String {
112        self.to_string()
113    }
114}
115
116impl SqlArg for u64 {
117    fn sql_arg(&self) -> String {
118        self.to_string()
119    }
120}
121
122impl SqlArg for &u64 {
123    fn sql_arg(&self) -> String {
124        self.to_string()
125    }
126}
127
128impl SqlArg for i128 {
129    fn sql_arg(&self) -> String {
130        self.to_string()
131    }
132}
133
134impl SqlArg for &i128 {
135    fn sql_arg(&self) -> String {
136        self.to_string()
137    }
138}
139
140impl SqlArg for u128 {
141    fn sql_arg(&self) -> String {
142        self.to_string()
143    }
144}
145
146impl SqlArg for &u128 {
147    fn sql_arg(&self) -> String {
148        self.to_string()
149    }
150}
151
152impl SqlArg for isize {
153    fn sql_arg(&self) -> String {
154        self.to_string()
155    }
156}
157
158impl SqlArg for &isize {
159    fn sql_arg(&self) -> String {
160        self.to_string()
161    }
162}
163
164impl SqlArg for usize {
165    fn sql_arg(&self) -> String {
166        self.to_string()
167    }
168}
169
170impl SqlArg for &usize {
171    fn sql_arg(&self) -> String {
172        self.to_string()
173    }
174}
175
176impl SqlArg for f32 {
177    fn sql_arg(&self) -> String {
178        self.to_string()
179    }
180}
181
182impl SqlArg for &f32 {
183    fn sql_arg(&self) -> String {
184        self.to_string()
185    }
186}
187
188impl SqlArg for f64 {
189    fn sql_arg(&self) -> String {
190        self.to_string()
191    }
192}
193
194impl SqlArg for &f64 {
195    fn sql_arg(&self) -> String {
196        self.to_string()
197    }
198}
199
200impl SqlArg for bool {
201    fn sql_arg(&self) -> String {
202        String::from(if *self { "TRUE" } else { "FALSE" })
203    }
204}
205
206impl SqlArg for &bool {
207    fn sql_arg(&self) -> String {
208        String::from(if **self { "TRUE" } else { "FALSE" })
209    }
210}
211
212impl<T: SqlArg> SqlArg for Option<T> {
213    fn sql_arg(&self) -> String {
214        match &*self {
215            Some(value) => value.sql_arg(),
216            None => String::from("NULL"),
217        }
218    }
219}
220
221impl<T: SqlArg> SqlArg for &Option<T> {
222    fn sql_arg(&self) -> String {
223        match &**self {
224            Some(value) => value.sql_arg(),
225            None => String::from("NULL"),
226        }
227    }
228}