sqlx_oldapi/
lib.rs

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