sqlx_exasol_impl/types/
mod.rs

1//! # Supported types
2//!
3//! | Rust type                 | Exasol type                                   |
4//! | :------------------------ | :-------------------------------------------- |
5//! | `bool`                    | `BOOLEAN`                                     |
6//! | `i8`, `i16`, `i32`, `i64` | `DECIMAL`                                     |
7//! | `f64`                     | `DOUBLE`                                      |
8//! | `String`, `&str`          | `CHAR(n) ASCII/UTF8`, `VARCHAR(n) ASCII/UTF8` |
9//! | `ExaIntervalYearToMonth`  | `INTERVAL YEAR TO MONTH`                      |
10//! | `HashType`                | `HASHTYPE`                                    |
11//! | `Option<T>`               | `T` (for any `T` that implements `Type`)      |
12//!
13//! ## `chrono` feature
14//!
15//! | Rust type               | Exasol type              |
16//! | :---------------------- | :----------------------- |
17//! | `chrono::NaiveDate`     | `DATE`                   |
18//! | `chrono::NaiveDateTime` | `TIMESTAMP`              |
19//! | `chrono::TimeDelta`     | `INTERVAL DAY TO SECOND` |
20//!
21//! ## `time` feature
22//!
23//! | Rust type                 | Exasol type              |
24//! | :------------------------ | :----------------------- |
25//! | `time::Date`              | `DATE`                   |
26//! | `time::PrimitiveDateTime` | `TIMESTAMP`              |
27//! | `time::Duration`          | `INTERVAL DAY TO SECOND` |
28//!
29//! ## `rust_decimal` feature
30//!
31//! | Rust type               | Exasol type    |
32//! | :---------------------- | :------------- |
33//! | `rust_decimal::Decimal` | `DECIMAL(p,s)` |
34//!
35//! ## `bigdecimal` feature
36//!
37//! | Rust type                | Exasol type    |
38//! | :----------------------- | :------------- |
39//! | `bigdecimal::BigDecimal` | `DECIMAL(p,s)` |
40//!
41//! ## `uuid` feature
42//!
43//! | Rust type    | Exasol type |
44//! | :----------- | :---------- |
45//! | `uuid::Uuid` | `HASHTYPE`  |
46//!
47//! ## `geo-types` feature
48//!
49//! | Rust type             | Exasol type |
50//! | :-------------------- | :---------- |
51//! | `geo_types::Geometry` | `GEOMETRY`  |
52//!
53//! **Note:** due to a [bug in the Exasol websocket
54//! API](httpsf://github.com/exasol/websocket-api/issues/39), `GEOMETRY` can't be used as prepared
55//! statement bind parameters. It can, however, be used as a column in a returned result set or with
56//! runtime checked queries.
57//!
58//! ## `json` feature
59//!
60//! The `json` feature enables  `Encode` and `Decode` implementations for `Json<T>`,
61//! `serde_json::Value` and `&serde_json::value::RawValue`.
62
63mod array;
64#[cfg(feature = "bigdecimal")]
65mod bigdecimal;
66mod bool;
67#[cfg(feature = "chrono")]
68pub mod chrono;
69mod float;
70#[cfg(feature = "geo-types")]
71pub mod geo_types;
72mod hashtype;
73mod int;
74mod interval_ytm;
75#[cfg(feature = "json")]
76mod json;
77mod option;
78#[cfg(feature = "rust_decimal")]
79mod rust_decimal;
80mod str;
81mod text;
82#[cfg(feature = "time")]
83pub mod time;
84#[cfg(feature = "uuid")]
85mod uuid;
86
87pub use array::{ExaHasArrayType, ExaIter};
88pub use hashtype::HashType;
89pub use interval_ytm::ExaIntervalYearToMonth;