diesel_mysql_spatial/
functions.rs1#![allow(non_snake_case)]
2use super::sql_types::*;
3use diesel::sql_types::*;
4
5sql_function! {
6 #[sql_name="ST_Dimension"]
8 fn ST_Dimension<G: Into<Geometry>>(g: G) -> Integer;
9}
10
11sql_function! {
12 #[sql_name="ST_Envelope"]
14 fn ST_Envelope<G: Into<Geometry>>(g: G) -> Polygon;
15}
16
17sql_function! {
18 #[sql_name="ST_GeometryType"]
20 fn ST_GeometryType<G: Into<Geometry>>(g: G) -> Text;
21}
22
23sql_function! {
24 #[sql_name="ST_IsEmpty"]
26 fn ST_IsEmpty<G: Into<Geometry>>(g: G) -> Bool;
27}
28
29sql_function! {
30 #[sql_name="ST_IsSimple"]
32 fn ST_IsSimple<G: Into<Geometry>>(g: G) -> Bool;
33}
34
35sql_function! {
36 #[sql_name="ST_SRID"]
38 fn ST_SRID<G: Into<Geometry>>(g: G) -> Integer;
39}
40
41sql_function! {
42 #[sql_name="ST_SRID"]
44 fn ST_SRID_2<G: Into<Geometry>>(g: G, srid: Integer) -> G;
45}
46
47sql_function! {
48 #[sql_name="ST_Transform"]
50 fn ST_Transform<G: Into<Geometry>>(g: G, target_srid: Integer) -> G;
51}
52
53sql_function! {
54 #[sql_name="ST_Latitude"]
56 fn ST_Latitude(p: Point) -> Double;
57}
58
59sql_function! {
60 #[sql_name="ST_Longitude"]
62 fn ST_Longitude(p: Point) -> Double;
63}
64
65sql_function! {
66 #[sql_name="ST_Latitude"]
68 fn ST_Latitude_2(p: Point, new_latitude: Double) -> Point;
69}
70
71sql_function! {
72 #[sql_name="ST_Longitude"]
74 fn ST_Longitude_2(p: Point, new_longitude: Double) -> Point;
75}
76
77sql_function! {
78 #[sql_name="ST_X"]
80 fn ST_X(p: Point) -> Double;
81}
82
83sql_function! {
84 #[sql_name="ST_Y"]
86 fn ST_Y(p: Point) -> Double;
87}
88
89sql_function! {
90 #[sql_name="ST_X"]
92 fn ST_X_2(p: Point, new_x: Double) -> Point;
93}
94
95sql_function! {
96 #[sql_name="ST_Y"]
98 fn ST_Y_2(p: Point, new_y: Double) -> Point;
99}
100
101sql_function! {
102 #[sql_name="ST_EndPoint"]
104 fn ST_EndPoint(ls: LineString) -> Point;
105}
106
107sql_function! {
108 #[sql_name="ST_IsClosed"]
110 fn ST_IsClosed<G: Into<Geometry>>(ls: G) -> Bool;
111}
112
113sql_function! {
114 #[sql_name="ST_Length"]
116 fn ST_Length<G: Into<Geometry>>(ls: G) -> Double;
117}
118
119sql_function! {
120 #[sql_name="ST_NumPoints"]
122 fn ST_NumPoints(ls: LineString) -> Integer;
123}
124
125sql_function! {
126 #[sql_name="ST_PointN"]
128 fn ST_PointN(ls: LineString, n: Integer) -> Nullable<Point>;
129}
130
131sql_function! {
132 #[sql_name="ST_StartPoint"]
134 fn ST_StartPoint(ls: LineString) -> Point;
135}
136
137sql_function! {
138 #[sql_name="ST_Area"]
140 fn ST_Area<G: Into<Geometry>>(poly: G) -> Double;
141}
142
143sql_function! {
144 #[sql_name="ST_Centroid"]
146 fn ST_Centroid<G: Into<Geometry>>(poly: G) -> Nullable<Point>;
147}
148
149sql_function! {
150 #[sql_name="ST_ExteriorRing"]
152 fn ST_ExteriorRing(poly: Polygon) -> LineString;
153}
154
155sql_function! {
156 #[sql_name="ST_InteriorRingN"]
158 fn ST_InteriorRingN(poly: Polygon, n: Integer) -> Nullable<LineString>;
159}
160
161sql_function! {
162 #[sql_name="ST_NumInteriorRings"]
164 fn ST_NumInteriorRings(poly: Polygon) -> Integer;
165}
166
167sql_function! {
168 #[sql_name="ST_GeometryN"]
170 fn ST_GeometryN(gc: GeometryCollection, n: Integer) -> Nullable<Geometry>;
171}
172
173sql_function! {
174 #[sql_name="ST_NumGeometries"]
176 fn ST_NumGeometries(gc: GeometryCollection) -> Integer;
177}
178
179sql_function! {
180 #[sql_name="ST_Buffer_Strategy"]
182 fn ST_Buffer_Strategy(strategy: Text) -> Blob;
183}
184
185sql_function! {
186 #[sql_name="ST_Buffer_Strategy"]
188 fn ST_Buffer_Strategy_2(strategy: Text, points_per_circle: Integer) -> Blob;
189}
190
191sql_function! {
192 #[sql_name="ST_Buffer"]
194 fn ST_Buffer<G: Into<Geometry>>(g: G, d: Double) -> Geometry;
195}
196
197sql_function! {
198 #[sql_name="ST_Buffer"]
200 fn ST_Buffer_1<G: Into<Geometry>>(g: G, d: Double, strategy1: Blob) -> Geometry;
201}
202
203sql_function! {
204 #[sql_name="ST_Buffer"]
206 fn ST_Buffer_2<G: Into<Geometry>>(g: G, d: Double, strategy1: Blob, strategy2: Blob) -> Geometry;
207}
208
209sql_function! {
210 #[sql_name="ST_Buffer"]
212 fn ST_Buffer_3<G: Into<Geometry>>(g: G, d: Double, strategy1: Blob, strategy2: Blob, strategy3: Blob) -> Geometry;
213}
214
215sql_function! {
216 #[sql_name="ST_ConvexHull"]
218 fn ST_ConvexHull<G: Into<Geometry>>(g: G) -> Nullable<Geometry>;
219}
220
221sql_function! {
222 #[sql_name="ST_Difference"]
224 fn ST_Difference<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Geometry;
225}
226
227sql_function! {
228 #[sql_name="ST_Intersection"]
230 fn ST_Intersection<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Geometry;
231}
232
233sql_function! {
234 #[sql_name="ST_SymDifference"]
236 fn ST_SymDifference<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Geometry;
237}
238
239sql_function! {
240 #[sql_name="ST_Union"]
242 fn ST_Union<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Geometry;
243}
244
245sql_function! {
246 #[sql_name="ST_LineInterpolatePoint"]
248 fn ST_LineInterpolatePoint(ls: LineString, fractional_distance: Double) -> Point;
249}
250
251sql_function! {
252 #[sql_name="ST_LineInterpolatePoints"]
254 fn ST_LineInterpolatePoints(ls: LineString, fractional_distance: Double) -> MultiPoint;
255}
256
257sql_function! {
258 #[sql_name="ST_PointAtDistance"]
260 fn ST_PointAtDistance(ls: LineString, distance: Double) -> Point;
261}
262
263sql_function! {
264 #[sql_name="ST_Contains"]
266 fn ST_Contains<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
267}
268
269sql_function! {
270 #[sql_name="ST_Crosses"]
272 fn ST_Crosses<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
273}
274
275sql_function! {
276 #[sql_name="ST_Disjoint"]
278 fn ST_Disjoint<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
279}
280
281sql_function! {
282 #[sql_name="ST_Distance"]
284 fn ST_Distance<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Double;
285}
286
287sql_function! {
288 #[sql_name="ST_Equals"]
290 fn ST_Equals<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
291}
292
293sql_function! {
294 #[sql_name="ST_Intersects"]
296 fn ST_Intersects<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
297}
298
299sql_function! {
300 #[sql_name="ST_Overlaps"]
302 fn ST_Overlaps<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Nullable<Bool>;
303}
304
305sql_function! {
306 #[sql_name="ST_Touches"]
308 fn ST_Touches<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Nullable<Bool>;
309}
310
311sql_function! {
312 #[sql_name="ST_Within"]
314 fn ST_Within<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
315}
316
317sql_function! {
318 #[sql_name="MBRContains"]
320 fn MBRContains<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
321}
322
323sql_function! {
324 #[sql_name="MBRCoveredBy"]
326 fn MBRCoveredBy<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
327}
328
329sql_function! {
330 #[sql_name="MBRCovers"]
332 fn MBRCovers<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
333}
334
335sql_function! {
336 #[sql_name="MBRDisjoint"]
338 fn MBRDisjoint<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
339}
340
341sql_function! {
342 #[sql_name="MBREquals"]
344 fn MBREquals<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
345}
346
347sql_function! {
348 #[sql_name="MBROverlaps"]
350 fn MBROverlaps<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
351}
352
353sql_function! {
354 #[sql_name="MBRTouches"]
356 fn MBRTouches<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
357}
358
359sql_function! {
360 #[sql_name="MBRWithin"]
362 fn MBRWithin<G1: Into<Geometry>, G2: Into<Geometry>>(g1: G1, g2: G2) -> Bool;
363}
364
365sql_function! {
366 #[aggregate]
368 #[sql_name = "ST_Collect"]
369 fn ST_Collect<G: Into<Geometry>>(expr: G) -> Geometry;
370}
371
372sql_function! {
373 #[sql_name = "ST_IsValid"]
375 fn ST_IsValid<G: Into<Geometry>>(expr: G) -> Bool;
376}
377
378sql_function! {
379 #[sql_name = "ST_Validate"]
381 fn ST_Validate<G: Into<Geometry> + NotNull>(expr: G) -> Nullable<G>;
382}