sqlx/src/lib.rs
2020-11-12 07:32:59 -08:00

153 lines
4.4 KiB
Rust

#![cfg_attr(docsrs, feature(doc_cfg))]
#[cfg(any(
feature = "runtime-actix",
feature = "runtime-async-std",
feature = "runtime-tokio"
))]
compile_error!(
"the features 'runtime-actix', 'runtime-async-std' and 'runtime-tokio' have been removed in
favor of new features 'runtime-{rt}-{tls}' where rt is one of 'actix', 'async-std' and 'tokio'
and 'tls' is one of 'native-tls' and 'rustls'."
);
pub use sqlx_core::acquire::Acquire;
pub use sqlx_core::arguments::{Arguments, IntoArguments};
pub use sqlx_core::column::Column;
pub use sqlx_core::column::ColumnIndex;
pub use sqlx_core::connection::{ConnectOptions, Connection};
pub use sqlx_core::database::{self, Database};
pub use sqlx_core::describe::Describe;
pub use sqlx_core::done::Done;
pub use sqlx_core::executor::{Execute, Executor};
pub use sqlx_core::from_row::FromRow;
pub use sqlx_core::pool::{self, Pool};
pub use sqlx_core::query::{query, query_with};
pub use sqlx_core::query_as::{query_as, query_as_with};
pub use sqlx_core::query_scalar::{query_scalar, query_scalar_with};
pub use sqlx_core::row::Row;
pub use sqlx_core::statement::Statement;
pub use sqlx_core::transaction::{Transaction, TransactionManager};
pub use sqlx_core::type_info::TypeInfo;
pub use sqlx_core::types::Type;
pub use sqlx_core::value::{Value, ValueRef};
#[doc(inline)]
pub use sqlx_core::error::{self, Error, Result};
#[cfg(feature = "migrate")]
pub use sqlx_core::migrate;
#[cfg(all(
any(
feature = "mysql",
feature = "sqlite",
feature = "postgres",
feature = "mssql"
),
feature = "any"
))]
pub use sqlx_core::any::{self, Any, AnyConnection, AnyPool};
#[cfg(feature = "mysql")]
#[cfg_attr(docsrs, doc(cfg(feature = "mysql")))]
pub use sqlx_core::mysql::{self, MySql, MySqlConnection, MySqlPool};
#[cfg(feature = "mssql")]
#[cfg_attr(docsrs, doc(cfg(feature = "mssql")))]
pub use sqlx_core::mssql::{self, Mssql, MssqlConnection, MssqlPool};
#[cfg(feature = "postgres")]
#[cfg_attr(docsrs, doc(cfg(feature = "postgres")))]
pub use sqlx_core::postgres::{self, PgConnection, PgPool, Postgres};
#[cfg(feature = "sqlite")]
#[cfg_attr(docsrs, doc(cfg(feature = "sqlite")))]
pub use sqlx_core::sqlite::{self, Sqlite, SqliteConnection, SqlitePool};
#[cfg(feature = "macros")]
#[doc(hidden)]
pub extern crate sqlx_macros;
// derives
#[cfg(feature = "macros")]
#[doc(hidden)]
pub use sqlx_macros::{FromRow, Type};
#[cfg(feature = "macros")]
mod macros;
// macro support
#[cfg(feature = "macros")]
#[doc(hidden)]
pub mod ty_match;
/// Conversions between Rust and SQL types.
///
/// To see how each SQL type maps to a Rust type, see the corresponding `types` module for each
/// database:
///
/// * [PostgreSQL](../postgres/types/index.html)
/// * [MySQL](../mysql/types/index.html)
/// * [SQLite](../sqlite/types/index.html)
/// * [MSSQL](../mssql/types/index.html)
///
/// Any external types that have had [`Type`] implemented for, are re-exported in this module
/// for convenience as downstream users need to use a compatible version of the external crate
/// to take advantage of the implementation.
///
/// [`Type`]: types/trait.Type.html
pub mod types {
pub use sqlx_core::types::*;
#[cfg(feature = "macros")]
#[doc(hidden)]
pub use sqlx_macros::Type;
}
/// Provides [`Encode`](encode/trait.Encode.html) for encoding values for the database.
pub mod encode {
pub use sqlx_core::encode::{Encode, IsNull};
#[cfg(feature = "macros")]
#[doc(hidden)]
pub use sqlx_macros::Encode;
}
pub use self::encode::Encode;
/// Provides [`Decode`](decode/trait.Decode.html) for decoding values from the database.
pub mod decode {
pub use sqlx_core::decode::Decode;
#[cfg(feature = "macros")]
#[doc(hidden)]
pub use sqlx_macros::Decode;
}
pub use self::decode::Decode;
/// Types and traits for the `query` family of functions and macros.
pub mod query {
pub use sqlx_core::query::{Map, Query};
pub use sqlx_core::query::{MapRow, TryMapRow};
pub use sqlx_core::query_as::QueryAs;
pub use sqlx_core::query_scalar::QueryScalar;
}
/// Convenience re-export of common traits.
pub mod prelude {
pub use super::Acquire;
pub use super::ConnectOptions;
pub use super::Connection;
pub use super::Decode;
pub use super::Done;
pub use super::Encode;
pub use super::Executor;
pub use super::FromRow;
pub use super::IntoArguments;
pub use super::Row;
pub use super::Statement;
pub use super::Type;
}