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 = "postgres")]
21pub mod typed_postgres;
22#[cfg(feature = "sqlite")]
23pub mod typed_sqlite;
24#[cfg(feature = "turso")]
25pub mod typed_turso;
26
27// Core modules (public for docs/advanced use)
28pub(crate) mod adapters;
29pub mod error;
30pub(crate) mod executor;
31pub mod middleware;
32pub mod pool;
33pub mod query;
34
35// Internal modules (types are re-exported; modules stay private)
36pub(crate) mod query_builder;
37pub(crate) mod query_utils;
38pub(crate) mod results;
39pub(crate) mod types;
40
41// Private database-specific modules
42#[cfg(feature = "mssql")]
43pub mod mssql;
44#[cfg(feature = "postgres")]
45pub mod postgres;
46#[cfg(feature = "sqlite")]
47pub mod sqlite;
48#[cfg(feature = "turso")]
49pub mod turso;
50
51// Direct exports for frequently used types
52pub use middleware::{
53    AnyConnWrapper, BatchTarget, ConfigAndPool, ConversionMode, CustomDbRow, DatabaseType,
54    MiddlewarePool, MiddlewarePoolConnection, ParamConverter, QueryAndParams, QueryBuilder,
55    QueryTarget, ResultSet, RowValues, SqlMiddlewareDbError, TxOutcome, execute_batch,
56};
57#[cfg(feature = "mssql")]
58pub use middleware::{MssqlOptions, MssqlOptionsBuilder};
59#[cfg(feature = "postgres")]
60pub use middleware::{PgConfig, PostgresOptions, PostgresOptionsBuilder};
61#[cfg(feature = "sqlite")]
62pub use middleware::{SqliteOptions, SqliteOptionsBuilder};
63#[cfg(feature = "turso")]
64pub use middleware::{TursoOptions, TursoOptionsBuilder};
65
66// Re-export from modules for convenience
67pub use conversion::convert_sql_params;
68pub use translation::{
69    PlaceholderStyle, PrepareMode, QueryOptions, TranslationMode, translate_placeholders,
70};