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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
/*! Implementation of the Elasticsearch `geo_shape` type. Geo shape is a wrapper for storing [geojson](http://geojson.org/) structures in Elasticsearch. # Examples For defining your own geo shape mapping, see [mapping details](mapping/trait.GeoShapeMapping.html#derive-mapping). Map with a default `geo_shape`: ``` # use elastic_types::geo::shape::prelude::*; # use elastic_types::geo::shape::mapping::*; struct MyType { pub field: GeoShape<DefaultGeoShapeMapping> } ``` Map with a custom `geo_shape`: ``` # extern crate serde; # #[macro_use] # extern crate elastic_types; # use elastic_types::prelude::*; # use std::marker::PhantomData; # fn main() { # use elastic_types::prelude::*; # use elastic_types::geo::shape::prelude::*; # #[derive(Default)] # struct MyGeoShapeMapping; # impl GeoShapeMapping for MyGeoShapeMapping {} struct MyType { pub field: GeoShape<MyGeoShapeMapping> } # } ``` Map a custom type as a `geo_shape` field: ``` # extern crate serde; # #[macro_use] # extern crate elastic_types; # #[macro_use] # extern crate serde_derive; # fn main() { # use elastic_types::prelude::*; #[derive(Serialize)] struct MyGeoShapeField(String); impl GeoShapeFieldType<DefaultGeoShapeMapping> for MyGeoShapeField {} # } ``` # Links - [Elasticsearch Doc](https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-shape.html) */ pub mod mapping; mod impls; pub use self::impls::*; pub mod prelude { /*! Includes all types for the `geo_shape` types. This is a convenience module to make it easy to build mappings for multiple types without too many `use` statements. */ pub use super::impls::*; pub use super::mapping::*; }