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;