sqlx_postgres/
type_checking.rs

1use crate::Postgres;
2
3// The paths used below will also be emitted by the macros so they have to match the final facade.
4#[allow(unused_imports, dead_code)]
5mod sqlx {
6    pub use crate as postgres;
7    pub use sqlx_core::*;
8}
9
10impl_type_checking!(
11        Postgres {
12        (),
13        bool,
14        String | &str,
15        i8,
16        i16,
17        i32,
18        i64,
19        f32,
20        f64,
21        Vec<u8> | &[u8],
22
23        sqlx::postgres::types::Oid,
24
25        sqlx::postgres::types::PgInterval,
26
27        sqlx::postgres::types::PgMoney,
28
29        sqlx::postgres::types::PgLTree,
30
31        sqlx::postgres::types::PgLQuery,
32
33        sqlx::postgres::types::PgCube,
34
35        sqlx::postgres::types::PgPoint,
36
37        sqlx::postgres::types::PgLine,
38
39        #[cfg(feature = "uuid")]
40        sqlx::types::Uuid,
41
42        #[cfg(all(feature = "chrono", not(feature = "time")))]
43        sqlx::types::chrono::NaiveTime,
44
45        #[cfg(all(feature = "chrono", not(feature = "time")))]
46        sqlx::types::chrono::NaiveDate,
47
48        #[cfg(all(feature = "chrono", not(feature = "time")))]
49        sqlx::types::chrono::NaiveDateTime,
50
51        #[cfg(all(feature = "chrono", not(feature = "time")))]
52        sqlx::types::chrono::DateTime<sqlx::types::chrono::Utc> | sqlx::types::chrono::DateTime<_>,
53
54        #[cfg(all(feature = "chrono", not(feature = "time")))]
55        sqlx::postgres::types::PgTimeTz<sqlx::types::chrono::NaiveTime, sqlx::types::chrono::FixedOffset>,
56
57        #[cfg(feature = "time")]
58        sqlx::types::time::Time,
59
60        #[cfg(feature = "time")]
61        sqlx::types::time::Date,
62
63        #[cfg(feature = "time")]
64        sqlx::types::time::PrimitiveDateTime,
65
66        #[cfg(feature = "time")]
67        sqlx::types::time::OffsetDateTime,
68
69        #[cfg(feature = "time")]
70        sqlx::postgres::types::PgTimeTz<sqlx::types::time::Time, sqlx::types::time::UtcOffset>,
71
72        #[cfg(feature = "bigdecimal")]
73        sqlx::types::BigDecimal,
74
75        #[cfg(feature = "rust_decimal")]
76        sqlx::types::Decimal,
77
78        #[cfg(feature = "ipnetwork")]
79        sqlx::types::ipnetwork::IpNetwork,
80
81        #[cfg(feature = "mac_address")]
82        sqlx::types::mac_address::MacAddress,
83
84        #[cfg(feature = "json")]
85        sqlx::types::JsonValue,
86
87        #[cfg(feature = "bit-vec")]
88        sqlx::types::BitVec,
89
90        sqlx::postgres::types::PgHstore,
91        // Arrays
92
93        Vec<bool> | &[bool],
94        Vec<String> | &[String],
95        Vec<Vec<u8>> | &[Vec<u8>],
96        Vec<i8> | &[i8],
97        Vec<i16> | &[i16],
98        Vec<i32> | &[i32],
99        Vec<i64> | &[i64],
100        Vec<f32> | &[f32],
101        Vec<f64> | &[f64],
102        Vec<sqlx::postgres::types::Oid> | &[sqlx::postgres::types::Oid],
103        Vec<sqlx::postgres::types::PgMoney> | &[sqlx::postgres::types::PgMoney],
104        Vec<sqlx::postgres::types::PgInterval> | &[sqlx::postgres::types::PgInterval],
105
106        #[cfg(feature = "uuid")]
107        Vec<sqlx::types::Uuid> | &[sqlx::types::Uuid],
108
109        #[cfg(all(feature = "chrono", not(feature = "time")))]
110        Vec<sqlx::types::chrono::NaiveTime> | &[sqlx::types::chrono::NaiveTime],
111
112        #[cfg(all(feature = "chrono", not(feature = "time")))]
113        Vec<sqlx::types::chrono::NaiveDate> | &[sqlx::types::chrono::NaiveDate],
114
115        #[cfg(all(feature = "chrono", not(feature = "time")))]
116        Vec<sqlx::types::chrono::NaiveDateTime> | &[sqlx::types::chrono::NaiveDateTime],
117
118        #[cfg(all(feature = "chrono", not(feature = "time")))]
119        Vec<sqlx::types::chrono::DateTime<sqlx::types::chrono::Utc>> | &[sqlx::types::chrono::DateTime<_>],
120
121        #[cfg(feature = "time")]
122        Vec<sqlx::types::time::Time> | &[sqlx::types::time::Time],
123
124        #[cfg(feature = "time")]
125        Vec<sqlx::types::time::Date> | &[sqlx::types::time::Date],
126
127        #[cfg(feature = "time")]
128        Vec<sqlx::types::time::PrimitiveDateTime> | &[sqlx::types::time::PrimitiveDateTime],
129
130        #[cfg(feature = "time")]
131        Vec<sqlx::types::time::OffsetDateTime> | &[sqlx::types::time::OffsetDateTime],
132
133        #[cfg(feature = "bigdecimal")]
134        Vec<sqlx::types::BigDecimal> | &[sqlx::types::BigDecimal],
135
136        #[cfg(feature = "rust_decimal")]
137        Vec<sqlx::types::Decimal> | &[sqlx::types::Decimal],
138
139        #[cfg(feature = "ipnetwork")]
140        Vec<sqlx::types::ipnetwork::IpNetwork> | &[sqlx::types::ipnetwork::IpNetwork],
141
142        #[cfg(feature = "mac_address")]
143        Vec<sqlx::types::mac_address::MacAddress> | &[sqlx::types::mac_address::MacAddress],
144
145        #[cfg(feature = "json")]
146        Vec<sqlx::types::JsonValue> | &[sqlx::types::JsonValue],
147
148        Vec<sqlx::postgres::types::PgHstore> | &[sqlx::postgres::types::PgHstore],
149
150        // Ranges
151
152        sqlx::postgres::types::PgRange<i32>,
153        sqlx::postgres::types::PgRange<i64>,
154
155        #[cfg(feature = "bigdecimal")]
156        sqlx::postgres::types::PgRange<sqlx::types::BigDecimal>,
157
158        #[cfg(feature = "rust_decimal")]
159        sqlx::postgres::types::PgRange<sqlx::types::Decimal>,
160
161        #[cfg(all(feature = "chrono", not(feature = "time")))]
162        sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDate>,
163
164        #[cfg(all(feature = "chrono", not(feature = "time")))]
165        sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDateTime>,
166
167        #[cfg(all(feature = "chrono", not(feature = "time")))]
168        sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<sqlx::types::chrono::Utc>> |
169            sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<_>>,
170
171        #[cfg(feature = "time")]
172        sqlx::postgres::types::PgRange<sqlx::types::time::Date>,
173
174        #[cfg(feature = "time")]
175        sqlx::postgres::types::PgRange<sqlx::types::time::PrimitiveDateTime>,
176
177        #[cfg(feature = "time")]
178        sqlx::postgres::types::PgRange<sqlx::types::time::OffsetDateTime>,
179
180        // Range arrays
181
182        Vec<sqlx::postgres::types::PgRange<i32>> | &[sqlx::postgres::types::PgRange<i32>],
183        Vec<sqlx::postgres::types::PgRange<i64>> | &[sqlx::postgres::types::PgRange<i64>],
184
185        #[cfg(feature = "bigdecimal")]
186        Vec<sqlx::postgres::types::PgRange<sqlx::types::BigDecimal>> |
187            &[sqlx::postgres::types::PgRange<sqlx::types::BigDecimal>],
188
189        #[cfg(feature = "rust_decimal")]
190        Vec<sqlx::postgres::types::PgRange<sqlx::types::Decimal>> |
191            &[sqlx::postgres::types::PgRange<sqlx::types::Decimal>],
192
193        #[cfg(all(feature = "chrono", not(feature = "time")))]
194        Vec<sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDate>> |
195            &[sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDate>],
196
197        #[cfg(all(feature = "chrono", not(feature = "time")))]
198        Vec<sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDateTime>> |
199            &[sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDateTime>],
200
201        #[cfg(all(feature = "chrono", not(feature = "time")))]
202        Vec<sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<sqlx::types::chrono::Utc>>> |
203            &[sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<_>>],
204
205        #[cfg(all(feature = "chrono", not(feature = "time")))]
206        Vec<sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<sqlx::types::chrono::Utc>>> |
207            &[sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<_>>],
208
209        #[cfg(feature = "time")]
210        Vec<sqlx::postgres::types::PgRange<sqlx::types::time::Date>> |
211            &[sqlx::postgres::types::PgRange<sqlx::types::time::Date>],
212
213        #[cfg(feature = "time")]
214        Vec<sqlx::postgres::types::PgRange<sqlx::types::time::PrimitiveDateTime>> |
215            &[sqlx::postgres::types::PgRange<sqlx::types::time::PrimitiveDateTime>],
216
217        #[cfg(feature = "time")]
218        Vec<sqlx::postgres::types::PgRange<sqlx::types::time::OffsetDateTime>> |
219            &[sqlx::postgres::types::PgRange<sqlx::types::time::OffsetDateTime>],
220    },
221    ParamChecking::Strong,
222    feature-types: info => info.__type_feature_gate(),
223);