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        sqlx::postgres::types::PgLSeg,
40
41        sqlx::postgres::types::PgBox,
42
43        sqlx::postgres::types::PgPath,
44
45        sqlx::postgres::types::PgPolygon,
46
47        sqlx::postgres::types::PgCircle,
48
49        #[cfg(feature = "uuid")]
50        sqlx::types::Uuid,
51
52        #[cfg(all(feature = "chrono", not(feature = "time")))]
53        sqlx::types::chrono::NaiveTime,
54
55        #[cfg(all(feature = "chrono", not(feature = "time")))]
56        sqlx::types::chrono::NaiveDate,
57
58        #[cfg(all(feature = "chrono", not(feature = "time")))]
59        sqlx::types::chrono::NaiveDateTime,
60
61        #[cfg(all(feature = "chrono", not(feature = "time")))]
62        sqlx::types::chrono::DateTime<sqlx::types::chrono::Utc> | sqlx::types::chrono::DateTime<_>,
63
64        #[cfg(all(feature = "chrono", not(feature = "time")))]
65        sqlx::postgres::types::PgTimeTz<sqlx::types::chrono::NaiveTime, sqlx::types::chrono::FixedOffset>,
66
67        #[cfg(feature = "time")]
68        sqlx::types::time::Time,
69
70        #[cfg(feature = "time")]
71        sqlx::types::time::Date,
72
73        #[cfg(feature = "time")]
74        sqlx::types::time::PrimitiveDateTime,
75
76        #[cfg(feature = "time")]
77        sqlx::types::time::OffsetDateTime,
78
79        #[cfg(feature = "time")]
80        sqlx::postgres::types::PgTimeTz<sqlx::types::time::Time, sqlx::types::time::UtcOffset>,
81
82        #[cfg(feature = "bigdecimal")]
83        sqlx::types::BigDecimal,
84
85        #[cfg(feature = "rust_decimal")]
86        sqlx::types::Decimal,
87
88        #[cfg(feature = "ipnetwork")]
89        sqlx::types::ipnetwork::IpNetwork,
90
91        #[cfg(feature = "ipnet")]
92        sqlx::types::ipnet::IpNet,
93
94        #[cfg(feature = "mac_address")]
95        sqlx::types::mac_address::MacAddress,
96
97        #[cfg(feature = "json")]
98        sqlx::types::JsonValue,
99
100        #[cfg(feature = "bit-vec")]
101        sqlx::types::BitVec,
102
103        sqlx::postgres::types::PgHstore,
104        // Arrays
105
106        Vec<bool> | &[bool],
107        Vec<String> | &[String],
108        Vec<Vec<u8>> | &[Vec<u8>],
109        Vec<i8> | &[i8],
110        Vec<i16> | &[i16],
111        Vec<i32> | &[i32],
112        Vec<i64> | &[i64],
113        Vec<f32> | &[f32],
114        Vec<f64> | &[f64],
115        Vec<sqlx::postgres::types::Oid> | &[sqlx::postgres::types::Oid],
116        Vec<sqlx::postgres::types::PgMoney> | &[sqlx::postgres::types::PgMoney],
117        Vec<sqlx::postgres::types::PgInterval> | &[sqlx::postgres::types::PgInterval],
118
119        #[cfg(feature = "uuid")]
120        Vec<sqlx::types::Uuid> | &[sqlx::types::Uuid],
121
122        #[cfg(all(feature = "chrono", not(feature = "time")))]
123        Vec<sqlx::types::chrono::NaiveTime> | &[sqlx::types::chrono::NaiveTime],
124
125        #[cfg(all(feature = "chrono", not(feature = "time")))]
126        Vec<sqlx::types::chrono::NaiveDate> | &[sqlx::types::chrono::NaiveDate],
127
128        #[cfg(all(feature = "chrono", not(feature = "time")))]
129        Vec<sqlx::types::chrono::NaiveDateTime> | &[sqlx::types::chrono::NaiveDateTime],
130
131        #[cfg(all(feature = "chrono", not(feature = "time")))]
132        Vec<sqlx::types::chrono::DateTime<sqlx::types::chrono::Utc>> | &[sqlx::types::chrono::DateTime<_>],
133
134        #[cfg(feature = "time")]
135        Vec<sqlx::types::time::Time> | &[sqlx::types::time::Time],
136
137        #[cfg(feature = "time")]
138        Vec<sqlx::types::time::Date> | &[sqlx::types::time::Date],
139
140        #[cfg(feature = "time")]
141        Vec<sqlx::types::time::PrimitiveDateTime> | &[sqlx::types::time::PrimitiveDateTime],
142
143        #[cfg(feature = "time")]
144        Vec<sqlx::types::time::OffsetDateTime> | &[sqlx::types::time::OffsetDateTime],
145
146        #[cfg(feature = "bigdecimal")]
147        Vec<sqlx::types::BigDecimal> | &[sqlx::types::BigDecimal],
148
149        #[cfg(feature = "rust_decimal")]
150        Vec<sqlx::types::Decimal> | &[sqlx::types::Decimal],
151
152        #[cfg(feature = "ipnetwork")]
153        Vec<sqlx::types::ipnetwork::IpNetwork> | &[sqlx::types::ipnetwork::IpNetwork],
154
155        #[cfg(feature = "ipnet")]
156        Vec<sqlx::types::ipnet::IpNet> | &[sqlx::types::ipnet::IpNet],
157
158        #[cfg(feature = "mac_address")]
159        Vec<sqlx::types::mac_address::MacAddress> | &[sqlx::types::mac_address::MacAddress],
160
161        #[cfg(feature = "json")]
162        Vec<sqlx::types::JsonValue> | &[sqlx::types::JsonValue],
163
164        Vec<sqlx::postgres::types::PgHstore> | &[sqlx::postgres::types::PgHstore],
165
166        // Ranges
167
168        sqlx::postgres::types::PgRange<i32>,
169        sqlx::postgres::types::PgRange<i64>,
170
171        #[cfg(feature = "bigdecimal")]
172        sqlx::postgres::types::PgRange<sqlx::types::BigDecimal>,
173
174        #[cfg(feature = "rust_decimal")]
175        sqlx::postgres::types::PgRange<sqlx::types::Decimal>,
176
177        #[cfg(all(feature = "chrono", not(feature = "time")))]
178        sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDate>,
179
180        #[cfg(all(feature = "chrono", not(feature = "time")))]
181        sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDateTime>,
182
183        #[cfg(all(feature = "chrono", not(feature = "time")))]
184        sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<sqlx::types::chrono::Utc>> |
185            sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<_>>,
186
187        #[cfg(feature = "time")]
188        sqlx::postgres::types::PgRange<sqlx::types::time::Date>,
189
190        #[cfg(feature = "time")]
191        sqlx::postgres::types::PgRange<sqlx::types::time::PrimitiveDateTime>,
192
193        #[cfg(feature = "time")]
194        sqlx::postgres::types::PgRange<sqlx::types::time::OffsetDateTime>,
195
196        // Range arrays
197
198        Vec<sqlx::postgres::types::PgRange<i32>> | &[sqlx::postgres::types::PgRange<i32>],
199        Vec<sqlx::postgres::types::PgRange<i64>> | &[sqlx::postgres::types::PgRange<i64>],
200
201        #[cfg(feature = "bigdecimal")]
202        Vec<sqlx::postgres::types::PgRange<sqlx::types::BigDecimal>> |
203            &[sqlx::postgres::types::PgRange<sqlx::types::BigDecimal>],
204
205        #[cfg(feature = "rust_decimal")]
206        Vec<sqlx::postgres::types::PgRange<sqlx::types::Decimal>> |
207            &[sqlx::postgres::types::PgRange<sqlx::types::Decimal>],
208
209        #[cfg(all(feature = "chrono", not(feature = "time")))]
210        Vec<sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDate>> |
211            &[sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDate>],
212
213        #[cfg(all(feature = "chrono", not(feature = "time")))]
214        Vec<sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDateTime>> |
215            &[sqlx::postgres::types::PgRange<sqlx::types::chrono::NaiveDateTime>],
216
217        #[cfg(all(feature = "chrono", not(feature = "time")))]
218        Vec<sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<sqlx::types::chrono::Utc>>> |
219            &[sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<_>>],
220
221        #[cfg(all(feature = "chrono", not(feature = "time")))]
222        Vec<sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<sqlx::types::chrono::Utc>>> |
223            &[sqlx::postgres::types::PgRange<sqlx::types::chrono::DateTime<_>>],
224
225        #[cfg(feature = "time")]
226        Vec<sqlx::postgres::types::PgRange<sqlx::types::time::Date>> |
227            &[sqlx::postgres::types::PgRange<sqlx::types::time::Date>],
228
229        #[cfg(feature = "time")]
230        Vec<sqlx::postgres::types::PgRange<sqlx::types::time::PrimitiveDateTime>> |
231            &[sqlx::postgres::types::PgRange<sqlx::types::time::PrimitiveDateTime>],
232
233        #[cfg(feature = "time")]
234        Vec<sqlx::postgres::types::PgRange<sqlx::types::time::OffsetDateTime>> |
235            &[sqlx::postgres::types::PgRange<sqlx::types::time::OffsetDateTime>],
236    },
237    ParamChecking::Strong,
238    feature-types: info => info.__type_feature_gate(),
239);