sqlx_sqlite_conn_mgr/config.rs
1//! Configuration for SQLite database connection pools
2
3use serde::{Deserialize, Serialize};
4
5/// Configuration for SqliteDatabase connection pools
6///
7/// # Examples
8///
9/// ```
10/// use sqlx_sqlite_conn_mgr::SqliteDatabaseConfig;
11///
12/// // Use defaults
13/// let config = SqliteDatabaseConfig::default();
14///
15/// // Customize specific fields
16/// let config = SqliteDatabaseConfig {
17/// max_read_connections: 3,
18/// idle_timeout_secs: 60,
19/// };
20///
21/// // Override just one field
22/// let config = SqliteDatabaseConfig {
23/// max_read_connections: 3,
24/// ..Default::default()
25/// };
26/// ```
27#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct SqliteDatabaseConfig {
29 /// Maximum number of concurrent read connections
30 ///
31 /// This controls the size of the read-only connection pool.
32 /// Higher values allow more concurrent read queries but consume more resources.
33 ///
34 /// Default: 6
35 pub max_read_connections: u32,
36
37 /// Idle timeout for both read and write connections (in seconds)
38 ///
39 /// Connections that remain idle for this duration will be closed automatically.
40 /// This helps prevent resource exhaustion from idle threads.
41 ///
42 /// Default: 30
43 pub idle_timeout_secs: u64,
44}
45
46impl Default for SqliteDatabaseConfig {
47 fn default() -> Self {
48 Self {
49 max_read_connections: 6,
50 idle_timeout_secs: 30,
51 }
52 }
53}