1use diesel::serialize::{self, IsNull, Output, ToSql};
4use diesel::sql_types;
5
6use crate::backend::LibSql;
7
8impl ToSql<sql_types::Bool, LibSql> for bool {
9 fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, LibSql>) -> serialize::Result {
10 let int_value = if *self { &1i32 } else { &0i32 };
11 <i32 as ToSql<sql_types::Integer, LibSql>>::to_sql(int_value, out)
12 }
13}
14
15impl ToSql<sql_types::SmallInt, LibSql> for i16 {
16 fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, LibSql>) -> serialize::Result {
17 out.set_value(*self as i32);
18 Ok(IsNull::No)
19 }
20}
21
22impl ToSql<sql_types::Integer, LibSql> for i32 {
23 fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, LibSql>) -> serialize::Result {
24 out.set_value(*self);
25 Ok(IsNull::No)
26 }
27}
28
29impl ToSql<sql_types::BigInt, LibSql> for i64 {
30 fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, LibSql>) -> serialize::Result {
31 out.set_value(*self);
32 Ok(IsNull::No)
33 }
34}
35
36impl ToSql<sql_types::Float, LibSql> for f32 {
37 fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, LibSql>) -> serialize::Result {
38 out.set_value(*self as f64);
39 Ok(IsNull::No)
40 }
41}
42
43impl ToSql<sql_types::Double, LibSql> for f64 {
44 fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, LibSql>) -> serialize::Result {
45 out.set_value(*self);
46 Ok(IsNull::No)
47 }
48}
49
50impl ToSql<sql_types::Text, LibSql> for str {
51 fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, LibSql>) -> serialize::Result {
52 out.set_value(self);
53 Ok(IsNull::No)
54 }
55}
56
57impl ToSql<sql_types::Binary, LibSql> for [u8] {
58 fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, LibSql>) -> serialize::Result {
59 out.set_value(self);
60 Ok(IsNull::No)
61 }
62}