sqlx_build_trust/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![doc = include_str!("lib.md")]
3
4pub use sqlx_core::acquire::Acquire;
5pub use sqlx_core::arguments::{Arguments, IntoArguments};
6pub use sqlx_core::column::Column;
7pub use sqlx_core::column::ColumnIndex;
8pub use sqlx_core::connection::{ConnectOptions, Connection};
9pub use sqlx_core::database::{self, Database};
10pub use sqlx_core::describe::Describe;
11pub use sqlx_core::executor::{Execute, Executor};
12pub use sqlx_core::from_row::FromRow;
13pub use sqlx_core::pool::{self, Pool};
14pub use sqlx_core::query::{query, query_with};
15pub use sqlx_core::query_as::{query_as, query_as_with};
16pub use sqlx_core::query_builder::{self, QueryBuilder};
17pub use sqlx_core::query_scalar::{query_scalar, query_scalar_with};
18pub use sqlx_core::raw_sql::{raw_sql, RawSql};
19pub use sqlx_core::row::Row;
20pub use sqlx_core::statement::Statement;
21pub use sqlx_core::transaction::{Transaction, TransactionManager};
22pub use sqlx_core::type_info::TypeInfo;
23pub use sqlx_core::types::Type;
24pub use sqlx_core::value::{Value, ValueRef};
25pub use sqlx_core::Either;
26
27#[doc(inline)]
28pub use sqlx_core::error::{self, Error, Result};
29
30#[cfg(feature = "migrate")]
31pub use sqlx_core::migrate;
32
33#[cfg(feature = "mysql")]
34#[cfg_attr(docsrs, doc(cfg(feature = "mysql")))]
35#[doc(inline)]
36pub use sqlx_mysql::{self as mysql, MySql, MySqlConnection, MySqlExecutor, MySqlPool};
37
38#[cfg(feature = "postgres")]
39#[cfg_attr(docsrs, doc(cfg(feature = "postgres")))]
40#[doc(inline)]
41pub use sqlx_build_trust_postgres::{self as postgres, PgConnection, PgExecutor, PgPool, Postgres};
42
43#[cfg(feature = "sqlite")]
44#[cfg_attr(docsrs, doc(cfg(feature = "sqlite")))]
45#[doc(inline)]
46pub use sqlx_build_trust_sqlite::{
47    self as sqlite, Sqlite, SqliteConnection, SqliteExecutor, SqlitePool,
48};
49
50#[cfg(feature = "any")]
51#[cfg_attr(docsrs, doc(cfg(feature = "any")))]
52pub use crate::any::{reexports::*, Any, AnyExecutor};
53
54#[cfg(feature = "macros")]
55#[doc(hidden)]
56pub extern crate sqlx_macros;
57
58// derives
59#[cfg(feature = "macros")]
60#[doc(hidden)]
61pub use sqlx_macros::{FromRow, Type};
62
63// We can't do our normal facade approach with an attribute, but thankfully we can now
64// have docs out-of-line quite easily.
65#[doc = include_str!("macros/test.md")]
66#[cfg(feature = "macros")]
67pub use sqlx_macros::test;
68
69#[doc(hidden)]
70#[cfg(feature = "migrate")]
71pub use sqlx_core::testing;
72
73#[doc(hidden)]
74pub use sqlx_core::rt::test_block_on;
75
76#[cfg(feature = "any")]
77pub mod any;
78
79#[cfg(feature = "macros")]
80mod macros;
81
82// macro support
83#[cfg(feature = "macros")]
84#[doc(hidden)]
85pub mod ty_match;
86
87#[doc(hidden)]
88pub use sqlx_core::rt as __rt;
89
90/// Conversions between Rust and SQL types.
91///
92/// To see how each SQL type maps to a Rust type, see the corresponding `types` module for each
93/// database:
94///
95///  * Postgres: [postgres::types]
96///  * MySQL: [mysql::types]
97///  * SQLite: [sqlite::types]
98///  * MSSQL: [mssql::types]
99///
100/// Any external types that have had [`Type`] implemented for, are re-exported in this module
101/// for convenience as downstream users need to use a compatible version of the external crate
102/// to take advantage of the implementation.
103///
104/// [`Type`]: types::Type
105pub mod types {
106    pub use sqlx_core::types::*;
107
108    #[cfg(feature = "macros")]
109    #[doc(hidden)]
110    pub use sqlx_macros::Type;
111}
112
113/// Provides [`Encode`](encode::Encode) for encoding values for the database.
114pub mod encode {
115    pub use sqlx_core::encode::{Encode, IsNull};
116
117    #[cfg(feature = "macros")]
118    #[doc(hidden)]
119    pub use sqlx_macros::Encode;
120}
121
122pub use self::encode::Encode;
123
124/// Provides [`Decode`](decode::Decode) for decoding values from the database.
125pub mod decode {
126    pub use sqlx_core::decode::Decode;
127
128    #[cfg(feature = "macros")]
129    #[doc(hidden)]
130    pub use sqlx_macros::Decode;
131}
132
133pub use self::decode::Decode;
134
135/// Types and traits for the `query` family of functions and macros.
136pub mod query {
137    pub use sqlx_core::query::{Map, Query};
138    pub use sqlx_core::query_as::QueryAs;
139    pub use sqlx_core::query_scalar::QueryScalar;
140}
141
142/// Convenience re-export of common traits.
143pub mod prelude {
144    pub use super::Acquire;
145    pub use super::ConnectOptions;
146    pub use super::Connection;
147    pub use super::Decode;
148    pub use super::Encode;
149    pub use super::Executor;
150    pub use super::FromRow;
151    pub use super::IntoArguments;
152    pub use super::Row;
153    pub use super::Statement;
154    pub use super::Type;
155}
156
157#[cfg(feature = "postgres")]
158extern crate sqlx_build_trust_postgres as sqlx_postgres;
159
160extern crate sqlx_build_trust_core as sqlx_core;