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 77 78 79 80 81 82 83
/*! Implementation of the Elasticsearch `number` types. Numeric types come in a number of flavours that correspond to primitives in Rust: Rust | Elasticsearch ------ | ------------------ `i64` | `long` `i32` | `integer` `i16` | `short` `i8` | `byte` `f64` | `double` `f32` | `float` For mapping a number with the default mapping, you can use the Rust primitive. If you need to use a custom mapping, then there is an `Elastic*` type for each number. # Examples For defining your own number mapping, see [mapping details](mapping/index.html#derive-mapping). Map with a default `number` (`integer` in this case): ``` struct MyType { pub field: i32 } ``` Map with a custom `number` (`integer` in this case): ``` # extern crate serde; # #[macro_use] # extern crate elastic_types; # use elastic_types::prelude::*; # fn main() { # #[derive(Default)] # struct MyIntegerMapping; # impl IntegerMapping for MyIntegerMapping { } struct MyType { pub field: Integer<MyIntegerMapping> } # } ``` Map a custom type as a `number` field (`integer` in this case): ``` # extern crate serde; # #[macro_use] # extern crate elastic_types; # #[macro_use] # extern crate serde_derive; # fn main() { # use elastic_types::prelude::*; #[derive(Serialize)] struct MyIntegerField(i32); impl IntegerFieldType<DefaultIntegerMapping> for MyIntegerField {} # } ``` # Links - [Elasticsearch Doc](https://www.elastic.co/guide/en/elasticsearch/reference/current/number.html) */ pub mod mapping; mod impls; pub use self::impls::*; pub mod prelude { /*! Includes all types for the `number` type. 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::*; }