64 lines
1.8 KiB
Rust
64 lines
1.8 KiB
Rust
//! Opciones de configuración de la extensión.
|
|
//!
|
|
//! Ejemplo:
|
|
//!
|
|
//! ```toml
|
|
//! [database]
|
|
//! db_type = "mysql"
|
|
//! db_name = "db"
|
|
//! db_user = "user"
|
|
//! db_pass = "password"
|
|
//! db_host = "localhost"
|
|
//! db_port = 3306
|
|
//! max_pool_size = 5
|
|
//! ```
|
|
//!
|
|
//! Uso:
|
|
//!
|
|
//! ```rust
|
|
//! # use pagetop_seaorm::config;
|
|
//! assert_eq!(config::SETTINGS.database.db_host, "localhost");
|
|
//! ```
|
|
//!
|
|
//! Consulta [`pagetop::config`] para ver cómo PageTop lee los archivos de configuración y aplica
|
|
//! los valores a los ajustes.
|
|
|
|
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)]
|
|
/// Tipos para la sección [`[database]`](Database) de [`SETTINGS`].
|
|
pub struct Settings {
|
|
pub database: Database,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
/// Sección `[database]` de la configuración. Forma parte de [`Settings`].
|
|
pub struct Database {
|
|
/// Tipo de base de datos: *"mysql"*, *"postgres"* ó *"sqlite"*.
|
|
pub db_type: String,
|
|
/// Nombre (para mysql/postgres) o referencia (para sqlite) de la base de datos.
|
|
pub db_name: String,
|
|
/// Usuario de conexión a la base de datos (para mysql/postgres).
|
|
pub db_user: String,
|
|
/// Contraseña para la conexión a la base de datos (para mysql/postgres).
|
|
pub db_pass: String,
|
|
/// Servidor de conexión a la base de datos (para mysql/postgres).
|
|
pub db_host: String,
|
|
/// Puerto de conexión a la base de datos, normalmente 3306 (para mysql) ó 5432 (para postgres).
|
|
pub db_port: u16,
|
|
/// Número máximo de conexiones habilitadas.
|
|
pub max_pool_size: u32,
|
|
}
|