Skip to main content

sql_middleware/
lib.rs

1#![doc = include_str!("../docs.md")]
2#![forbid(unsafe_code)]
3
4// Test utilities module
5#[path = "test_utils/test_helpers.rs"]
6pub mod test_helpers;
7
8// Benchmark utilities module - for benchmarks
9#[cfg(feature = "benchmarks")]
10pub mod benchmark;
11
12// Public API modules
13pub mod conversion;
14pub mod prelude;
15pub mod translation;
16pub mod tx_outcome;
17pub mod typed;
18/// Back-compat re-export: `typed_api` is now `typed`.
19pub use typed as typed_api;
20#[cfg(feature = "mssql")]
21pub mod typed_mssql;
22#[cfg(feature = "postgres")]
23pub mod typed_postgres;
24#[cfg(feature = "sqlite")]
25pub mod typed_sqlite;
26#[cfg(feature = "turso")]
27pub mod typed_turso;
28
29// Core modules (public for docs/advanced use)
30pub(crate) mod adapters;
31pub mod error;
32pub(crate) mod executor;
33pub mod middleware;
34pub mod pool;
35pub mod query;
36
37// Internal modules (types are re-exported; modules stay private)
38pub(crate) mod query_builder;
39#[cfg(any(feature = "mssql", feature = "postgres", feature = "sqlite"))]
40pub(crate) mod query_utils;
41pub(crate) mod results;
42pub(crate) mod types;
43
44// Private database-specific modules
45#[cfg(feature = "mssql")]
46pub mod mssql;
47#[cfg(feature = "postgres")]
48pub mod postgres;
49#[cfg(feature = "sqlite")]
50pub mod sqlite;
51#[cfg(feature = "turso")]
52pub mod turso;
53
54// Direct exports for frequently used types
55#[cfg(any(
56    feature = "postgres",
57    feature = "sqlite",
58    feature = "mssql",
59    feature = "turso"
60))]
61pub use middleware::MiddlewarePoolOptions;
62pub use middleware::{
63    AnyConnWrapper, BatchTarget, ConfigAndPool, ConversionMode, CustomDbRow, DatabaseType,
64    MiddlewarePool, MiddlewarePoolConnection, ParamConverter, QueryAndParams, QueryBuilder,
65    QueryTarget, ResultSet, RowValues, SqlMiddlewareDbError, StatementCacheMode, TxOutcome,
66    execute_batch,
67};
68#[cfg(feature = "mssql")]
69pub use middleware::{MssqlOptions, MssqlOptionsBuilder};
70#[cfg(feature = "postgres")]
71pub use middleware::{PgConfig, PostgresOptions, PostgresOptionsBuilder};
72#[cfg(feature = "sqlite")]
73pub use middleware::{SqliteOptions, SqliteOptionsBuilder};
74#[cfg(feature = "turso")]
75pub use middleware::{TursoOptions, TursoOptionsBuilder};
76#[cfg(feature = "sqlite")]
77pub use sqlite::SqliteParamsBuf;
78#[cfg(feature = "turso")]
79pub use turso::TursoParamsBuf;
80
81// Re-export from modules for convenience
82pub use conversion::convert_sql_params;
83pub use translation::{
84    PlaceholderStyle, PrepareMode, QueryOptions, TranslationMode, translate_placeholders,
85};