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;
39pub(crate) mod query_utils;
40pub(crate) mod results;
41pub(crate) mod types;
42
43// Private database-specific modules
44#[cfg(feature = "mssql")]
45pub mod mssql;
46#[cfg(feature = "postgres")]
47pub mod postgres;
48#[cfg(feature = "sqlite")]
49pub mod sqlite;
50#[cfg(feature = "turso")]
51pub mod turso;
52
53// Direct exports for frequently used types
54pub use middleware::{
55    AnyConnWrapper, BatchTarget, ConfigAndPool, ConversionMode, CustomDbRow, DatabaseType,
56    MiddlewarePool, MiddlewarePoolConnection, ParamConverter, QueryAndParams, QueryBuilder,
57    QueryTarget, ResultSet, RowValues, SqlMiddlewareDbError, TxOutcome, execute_batch,
58};
59#[cfg(feature = "mssql")]
60pub use middleware::{MssqlOptions, MssqlOptionsBuilder};
61#[cfg(feature = "postgres")]
62pub use middleware::{PgConfig, PostgresOptions, PostgresOptionsBuilder};
63#[cfg(feature = "sqlite")]
64pub use middleware::{SqliteOptions, SqliteOptionsBuilder};
65#[cfg(feature = "turso")]
66pub use middleware::{TursoOptions, TursoOptionsBuilder};
67
68// Re-export from modules for convenience
69pub use conversion::convert_sql_params;
70pub use translation::{
71    PlaceholderStyle, PrepareMode, QueryOptions, TranslationMode, translate_placeholders,
72};