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}