sqlx_core/
lib.rs

1//! Core of SQLx, the rust SQL toolkit.
2//! Not intended to be used directly.
3#![recursion_limit = "512"]
4#![warn(future_incompatible, rust_2018_idioms)]
5#![allow(clippy::needless_doctest_main, clippy::type_complexity)]
6// See `clippy.toml` at the workspace root
7#![deny(clippy::disallowed_method)]
8//
9// Allows an API be documented as only available in some specific platforms.
10// <https://doc.rust-lang.org/unstable-book/language-features/doc-cfg.html>
11#![cfg_attr(docsrs, feature(doc_cfg))]
12//
13// When compiling with support for SQLite we must allow some unsafe code in order to
14// interface with the inherently unsafe C module. This unsafe code is contained
15// to the sqlite module.
16#![cfg_attr(feature = "sqlite", deny(unsafe_code))]
17#![cfg_attr(not(feature = "sqlite"), forbid(unsafe_code))]
18
19#[cfg(feature = "bigdecimal")]
20extern crate bigdecimal_ as bigdecimal;
21
22#[macro_use]
23mod ext;
24
25#[macro_use]
26pub mod error;
27
28#[macro_use]
29pub mod arguments;
30
31#[macro_use]
32pub mod pool;
33
34pub mod connection;
35
36#[macro_use]
37pub mod transaction;
38
39#[macro_use]
40pub mod encode;
41
42#[macro_use]
43pub mod decode;
44
45#[macro_use]
46pub mod types;
47
48#[macro_use]
49pub mod query;
50
51#[macro_use]
52pub mod acquire;
53
54#[macro_use]
55pub mod column;
56
57#[macro_use]
58pub mod statement;
59
60mod common;
61pub use either::Either;
62pub mod database;
63pub mod describe;
64pub mod executor;
65pub mod from_row;
66mod io;
67mod logger;
68mod net;
69pub mod query_as;
70pub mod query_builder;
71pub mod query_scalar;
72pub mod row;
73pub mod type_info;
74pub mod value;
75
76#[cfg(feature = "migrate")]
77pub mod migrate;
78
79#[cfg(all(
80    any(
81        feature = "postgres",
82        feature = "mysql",
83        feature = "mssql",
84        feature = "sqlite"
85    ),
86    feature = "any"
87))]
88pub mod any;
89
90#[cfg(feature = "postgres")]
91#[cfg_attr(docsrs, doc(cfg(feature = "postgres")))]
92pub mod postgres;
93
94#[cfg(feature = "sqlite")]
95#[cfg_attr(docsrs, doc(cfg(feature = "sqlite")))]
96pub mod sqlite;
97
98#[cfg(feature = "mysql")]
99#[cfg_attr(docsrs, doc(cfg(feature = "mysql")))]
100pub mod mysql;
101
102#[cfg(feature = "mssql")]
103#[cfg_attr(docsrs, doc(cfg(feature = "mssql")))]
104pub mod mssql;
105
106// Implements test support with automatic DB management.
107#[cfg(feature = "migrate")]
108pub mod testing;
109
110pub use sqlx_rt::test_block_on;
111
112/// sqlx uses ahash for increased performance, at the cost of reduced DoS resistance.
113use ahash::AHashMap as HashMap;
114//type HashMap<K, V> = std::collections::HashMap<K, V, ahash::RandomState>;