diesel_libsql/
from_sql.rs1use diesel::deserialize::{self, FromSql};
4use diesel::sql_types;
5
6use crate::backend::LibSql;
7use crate::value::LibSqlValue;
8
9impl FromSql<sql_types::SmallInt, LibSql> for i16 {
10 fn from_sql(value: LibSqlValue) -> deserialize::Result<Self> {
11 Ok(value.read_integer() as i16)
12 }
13}
14
15impl FromSql<sql_types::Integer, LibSql> for i32 {
16 fn from_sql(value: LibSqlValue) -> deserialize::Result<Self> {
17 Ok(value.read_integer())
18 }
19}
20
21impl FromSql<sql_types::BigInt, LibSql> for i64 {
22 fn from_sql(value: LibSqlValue) -> deserialize::Result<Self> {
23 Ok(value.read_long())
24 }
25}
26
27impl FromSql<sql_types::Float, LibSql> for f32 {
28 fn from_sql(value: LibSqlValue) -> deserialize::Result<Self> {
29 Ok(value.read_double() as f32)
30 }
31}
32
33impl FromSql<sql_types::Double, LibSql> for f64 {
34 fn from_sql(value: LibSqlValue) -> deserialize::Result<Self> {
35 Ok(value.read_double())
36 }
37}
38
39impl FromSql<sql_types::Bool, LibSql> for bool {
40 fn from_sql(value: LibSqlValue) -> deserialize::Result<Self> {
41 Ok(value.read_integer() != 0)
42 }
43}
44
45impl FromSql<sql_types::Text, LibSql> for String {
46 fn from_sql(value: LibSqlValue) -> deserialize::Result<Self> {
47 Ok(value.read_text().to_string())
48 }
49}
50
51impl FromSql<sql_types::Binary, LibSql> for Vec<u8> {
52 fn from_sql(value: LibSqlValue) -> deserialize::Result<Self> {
53 Ok(value.read_blob().to_vec())
54 }
55}