71 lines
1.9 KiB
Rust
71 lines
1.9 KiB
Rust
//! Opciones de configuración.
|
|
//!
|
|
//! Example:
|
|
//!
|
|
//! ```toml
|
|
//! [database]
|
|
//! db_type = "mysql"
|
|
//! db_name = "db"
|
|
//! db_user = "user"
|
|
//! db_pass = "password"
|
|
//! db_host = "localhost"
|
|
//! db_port = 3306
|
|
//! max_pool_size = 5
|
|
//! ```
|
|
//!
|
|
//! Usage:
|
|
//!
|
|
//! ```rust
|
|
//! use pagetop_seaorm::config;
|
|
//!
|
|
//! assert_eq!(config::SETTINGS.database.db_host, "localhost");
|
|
//! ```
|
|
//! See [`pagetop::include_config`] to learn how `PageTop` read configuration files and use
|
|
//! settings.
|
|
|
|
use pagetop::prelude::*;
|
|
|
|
use serde::Deserialize;
|
|
|
|
include_config!(SETTINGS: Settings => [
|
|
// [database]
|
|
"database.db_type" => "",
|
|
"database.db_name" => "",
|
|
"database.db_user" => "",
|
|
"database.db_pass" => "",
|
|
"database.db_host" => "localhost",
|
|
"database.db_port" => 0,
|
|
"database.max_pool_size" => 5,
|
|
]);
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
/// Represents configuration settings, specifically the [`[database]`](Database) section (used by
|
|
/// [`SETTINGS`]).
|
|
pub struct Settings {
|
|
pub database: Database,
|
|
}
|
|
#[derive(Debug, Deserialize)]
|
|
/// Represents the `[database]` section in the [`Settings`] type.
|
|
pub struct Database {
|
|
/// Type of database: *"mysql"*, *"postgres"*, or *"sqlite"*.
|
|
/// Default: *""*.
|
|
pub db_type: String,
|
|
/// Name (for MySQL/Postgres) or reference (for SQLite) of the database.
|
|
/// Default: *""*.
|
|
pub db_name: String,
|
|
/// Username for database connection (for MySQL/Postgres).
|
|
/// Default: *""*.
|
|
pub db_user: String,
|
|
/// Password for database connection (for MySQL/Postgres).
|
|
/// Default: *""*.
|
|
pub db_pass: String,
|
|
/// Hostname for database connection (for MySQL/Postgres).
|
|
/// Default: *"localhost"*.
|
|
pub db_host: String,
|
|
/// Port number for database connection, typically 3306 (MySQL) or 5432 (Postgres).
|
|
/// Default: *0*.
|
|
pub db_port: u16,
|
|
/// Maximum number of allowed connections.
|
|
/// Default: *5*.
|
|
pub max_pool_size: u32,
|
|
}
|