1pub trait CheckedSql {}
2
3impl CheckedSql for i8 {}
4
5impl CheckedSql for i16 {}
6
7impl CheckedSql for i32 {}
8
9impl CheckedSql for i64 {}
10
11impl CheckedSql for u8 {}
12
13impl CheckedSql for u16 {}
14
15impl CheckedSql for u32 {}
16
17impl CheckedSql for u64 {}
18
19pub trait ToSql {
20 fn write_sql_unchecked(&self, sql: &mut String);
21
22 fn write_sql(&self, sql: &mut String)
23 where
24 Self: CheckedSql,
25 {
26 self.write_sql_unchecked(sql);
27 }
28
29 fn to_sql_unchecked(&self) -> String {
30 let mut sql = String::new();
31 self.write_sql_unchecked(&mut sql);
32 sql.push(';');
33 sql
34 }
35
36 fn to_sql(&self) -> String
37 where
38 Self: CheckedSql,
39 {
40 self.to_sql_unchecked()
41 }
42}