1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//! # Prax SQLx Backend
//!
//! This crate provides a SQLx-based query engine for Prax ORM, offering
//! compile-time checked queries as an alternative to the default async drivers.
//!
//! ## Features
//!
//! - **Compile-time query checking** - Validate SQL queries at compile time
//! - **Multi-database support** - PostgreSQL, MySQL, and SQLite through a unified API
//! - **Type-safe queries** - Strong typing for query parameters and results
//! - **Connection pooling** - Built-in connection pool management via SQLx
//! - **Async/await** - Full async support with tokio runtime
//!
//! ## Usage
//!
//! ```rust,ignore
//! use prax_sqlx::{SqlxEngine, SqlxConfig};
//!
//! // Create configuration
//! let config = SqlxConfig::from_url("postgres://user:pass@localhost/db")?;
//!
//! // Create engine
//! let engine = SqlxEngine::new(config).await?;
//!
//! // Execute queries
//! let users: Vec<User> = engine
//! .query_many("SELECT * FROM users WHERE active = $1", &[&true])
//! .await?;
//! ```
//!
//! ## Compile-Time Checking
//!
//! Use the `sqlx::query!` macro for compile-time SQL verification:
//!
//! ```rust,ignore
//! use prax_sqlx::checked;
//!
//! // This query is checked at compile time
//! let users = checked::query_as!(
//! User,
//! "SELECT id, name, email FROM users WHERE id = $1",
//! user_id
//! )
//! .fetch_all(&pool)
//! .await?;
//! ```
// QueryError is intentionally large; see prax-query/src/lib.rs.
/// Re-export commonly used types
pub use SqlxConfig;
pub use SqlxEngine;
pub use ;
pub use ;
/// Re-export SQLx types for convenience
pub use ;
/// Checked query macros for compile-time SQL verification