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