sqlx_rqlite/types/
int.rs

1use crate::rqlite;
2use crate::decode::Decode;
3use crate::encode::{Encode, IsNull};
4use crate::error::BoxDynError;
5use crate::type_info::DataType;
6use crate::types::Type;
7use crate::{Rqlite, /*RqliteArgumentValue,*/ RqliteTypeInfo, RqliteValueRef};
8
9impl Type<Rqlite> for i8 {
10    fn type_info() -> RqliteTypeInfo {
11        RqliteTypeInfo(DataType::Int)
12    }
13
14    fn compatible(ty: &RqliteTypeInfo) -> bool {
15        matches!(ty.0, DataType::Int | DataType::Int64)
16    }
17}
18
19impl<'q> Encode<'q, Rqlite> for i8 {
20    fn encode_by_ref(&self, args: &mut Vec<rqlite::Value>) -> IsNull {
21        args.push(rqlite::Value::Number((*self).into()));
22
23        IsNull::No
24    }
25}
26
27impl<'r> Decode<'r, Rqlite> for i8 {
28    fn decode(value: RqliteValueRef<'r>) -> Result<Self, BoxDynError> {
29        Ok(value.int()?.try_into()?)
30    }
31}
32
33impl Type<Rqlite> for i16 {
34    fn type_info() -> RqliteTypeInfo {
35        RqliteTypeInfo(DataType::Int)
36    }
37
38    fn compatible(ty: &RqliteTypeInfo) -> bool {
39        matches!(ty.0, DataType::Int | DataType::Int64)
40    }
41}
42
43impl<'q> Encode<'q, Rqlite> for i16 {
44    fn encode_by_ref(&self, args: &mut Vec<rqlite::Value>) -> IsNull {
45        args.push(rqlite::Value::Number((*self).into()));
46
47        IsNull::No
48    }
49}
50
51impl<'r> Decode<'r, Rqlite> for i16 {
52    fn decode(value: RqliteValueRef<'r>) -> Result<Self, BoxDynError> {
53        Ok(value.int()?.try_into()?)
54    }
55}
56
57impl Type<Rqlite> for i32 {
58    fn type_info() -> RqliteTypeInfo {
59        RqliteTypeInfo(DataType::Int)
60    }
61
62    fn compatible(ty: &RqliteTypeInfo) -> bool {
63        matches!(ty.0, DataType::Int | DataType::Int64)
64    }
65}
66
67impl<'q> Encode<'q, Rqlite> for i32 {
68    fn encode_by_ref(&self, args: &mut Vec<rqlite::Value>) -> IsNull {
69        args.push(rqlite::Value::Number((*self).into()));
70
71        IsNull::No
72    }
73}
74
75impl<'r> Decode<'r, Rqlite> for i32 {
76    fn decode(value: RqliteValueRef<'r>) -> Result<Self, BoxDynError> {
77        Ok(value.int()?)
78    }
79}
80
81impl Type<Rqlite> for i64 {
82    fn type_info() -> RqliteTypeInfo {
83        RqliteTypeInfo(DataType::Int64)
84    }
85
86    fn compatible(ty: &RqliteTypeInfo) -> bool {
87        matches!(ty.0, DataType::Int | DataType::Int64)
88    }
89}
90
91impl<'q> Encode<'q, Rqlite> for i64 {
92    fn encode_by_ref(&self, args: &mut Vec<rqlite::Value>) -> IsNull {
93        args.push(rqlite::Value::Number((*self).into()));
94
95        IsNull::No
96    }
97}
98
99impl<'r> Decode<'r, Rqlite> for i64 {
100    fn decode(value: RqliteValueRef<'r>) -> Result<Self, BoxDynError> {
101        Ok(value.int64()?)
102    }
103}