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
//! Configuration management module.
//!
//! This module handles loading, parsing, and validating the tracker configuration
//! from TOML files. It provides comprehensive configuration options for all
//! tracker subsystems.
//!
//! # Configuration Structure
//!
//! The main configuration file (`config.toml`) contains sections for:
//! - **tracker_config**: Core tracker settings (whitelist, blacklist, keys, users)
//! - **database**: Database connection and schema settings
//! - **cache**: Optional Redis/Memcache configuration
//! - **http_trackers**: HTTP/HTTPS server instances
//! - **udp_trackers**: UDP server instances
//! - **api_trackers**: REST API server instances
//! - **cluster**: WebSocket clustering settings (master/slave mode)
//! - **sentry**: Error reporting configuration
//!
//! # Features
//!
//! - TOML file parsing with detailed error messages
//! - Environment variable overrides
//! - Customizable database table/column names
//! - Multiple server instance configurations
//! - Default value generation
//!
//! # Example
//!
//! ```rust,ignore
//! use torrust_actix::config::structs::configuration::Configuration;
//!
//! // Load configuration from file
//! let config = Configuration::load_from_file("config.toml").await?;
//!
//! // Generate default configuration
//! let default_config = Configuration::default();
//! Configuration::save_from_config("config.toml", &default_config)?;
//! ```
/// Configuration enumerations (cluster mode, database drivers, etc.).
/// Configuration data structures.
/// Implementation blocks for configuration loading/saving.