1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
// // Copyright (c) ShuYu Wang <andelf@gmail.com>, Feather Workshop and Pirmin Kalberer. All rights reserved. // //! An extension to rust-postgres, adds support for PostGIS. //! //! - PostGIS type helper //! - GCJ02 support (used offically in Mainland China) //! - Tiny WKB (TWKB) support //! //! ```rust,no_run //! use postgres::{Client, NoTls}; //! use postgis::{ewkb, LineString}; //! //! fn main() { //! let mut client = Client::connect("host=localhost user=postgres", NoTls).unwrap(); //! for row in &client.query("SELECT * FROM busline", &[]).unwrap() { //! let route: ewkb::LineString = row.get("route"); //! let last_stop = route.points().last().unwrap(); //! let _ = client.execute("INSERT INTO stops (stop) VALUES ($1)", &[&last_stop]); //! } //! } //! ``` //! //! Handling NULL values: //! //! ```rust,no_run //! # use postgres::{Client, NoTls}; //! # use postgis::{ewkb, LineString}; //! # let mut client = Client::connect("host=localhost user=postgres", NoTls).unwrap(); //! # let rows = client.query("SELECT * FROM busline", &[]).unwrap(); //! # let row = rows.first().unwrap(); //! let route = row.try_get::<_, Option<ewkb::LineString>>("route"); //! match route { //! Ok(Some(geom)) => { println!("{:?}", geom) } //! Ok(None) => { /* Handle NULL value */ } //! Err(err) => { println!("Error: {}", err) } //! } //! ``` pub mod error; mod types; pub use types::{LineString, MultiLineString, MultiPoint, MultiPolygon, Point, Polygon}; pub mod ewkb; pub mod mars; mod postgis; pub mod twkb;