sqlx_build_trust/any/
mod.rs

1//! **SEE DOCUMENTATION BEFORE USE**. Runtime-generic database driver.
2#![doc = include_str!("install_drivers_note.md")]
3
4use std::sync::Once;
5
6pub use sqlx_core::any::driver::install_drivers;
7
8pub use sqlx_core::any::{
9    Any, AnyArguments, AnyConnectOptions, AnyExecutor, AnyKind, AnyPoolOptions, AnyQueryResult,
10    AnyRow, AnyStatement, AnyTransactionManager, AnyTypeInfo, AnyValue, AnyValueRef,
11};
12
13pub(crate) mod reexports {
14    /// **SEE DOCUMENTATION BEFORE USE**. Type alias for `Pool<Any>`.
15    #[doc = include_str!("install_drivers_note.md")]
16    pub use sqlx_core::any::AnyPool;
17
18    /// **SEE DOCUMENTATION BEFORE USE**. Runtime-generic database connection.
19    #[doc = include_str!("install_drivers_note.md")]
20    pub use sqlx_core::any::AnyConnection;
21}
22
23/// Install all currently compiled-in drivers for [`AnyConnection`] to use.
24///
25/// May be called multiple times; only the first call will install drivers, subsequent calls
26/// will have no effect.
27///
28/// ### Panics
29/// If [`install_drivers`] has already been called *not* through this function.
30pub fn install_default_drivers() {
31    static ONCE: Once = Once::new();
32
33    ONCE.call_once(|| {
34        install_drivers(&[
35            #[cfg(feature = "mysql")]
36            sqlx_mysql::any::DRIVER,
37            #[cfg(feature = "postgres")]
38            sqlx_build_trust_postgres::any::DRIVER,
39            #[cfg(feature = "sqlite")]
40            sqlx_build_trust_sqlite::any::DRIVER,
41        ])
42        .expect("non-default drivers already installed")
43    });
44}