✨ (seaorm): Incluye DbType y retoca docs de config
This commit is contained in:
parent
3951f1da1a
commit
dfc1bdbc4c
4 changed files with 42 additions and 22 deletions
|
|
@ -28,13 +28,13 @@ include_config!(SETTINGS: Settings => [
|
|||
"bootsier.max_width" => "1440px",
|
||||
]);
|
||||
|
||||
/// Tipos para la sección [`[bootsier]`](Bootsier) de [`SETTINGS`].
|
||||
/// Ajustes para la sección [`Bootsier`] de [`SETTINGS`].
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct Settings {
|
||||
pub bootsier: Bootsier,
|
||||
}
|
||||
|
||||
/// Sección `[bootsier]` de la configuración. Forma parte de [`Settings`].
|
||||
/// Sección **`[bootsier]`** de la configuración. Forma parte de [`Settings`].
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct Bootsier {
|
||||
/// Ancho máximo predeterminado para la página, por ejemplo "100%" o "90rem".
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@
|
|||
//!
|
||||
//! ```toml
|
||||
//! [database]
|
||||
//! db_type = "mysql"
|
||||
//! db_type = "postgres"
|
||||
//! db_name = "db"
|
||||
//! db_user = "user"
|
||||
//! db_pass = "password"
|
||||
//! db_host = "localhost"
|
||||
//! db_port = 3306
|
||||
//! db_port = 5432
|
||||
//! max_pool_size = 5
|
||||
//! ```
|
||||
//!
|
||||
|
|
@ -29,25 +29,28 @@ 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_type" => "",
|
||||
"database.db_name" => "",
|
||||
"database.db_user" => "",
|
||||
"database.db_pass" => "",
|
||||
"database.db_host" => "localhost",
|
||||
"database.max_pool_size" => 5,
|
||||
]);
|
||||
|
||||
/// Ajustes para la sección [`Database`] de [`SETTINGS`].
|
||||
#[derive(Debug, Deserialize)]
|
||||
/// Tipos para la sección [`[database]`](Database) de [`SETTINGS`].
|
||||
pub struct Settings {
|
||||
pub database: Database,
|
||||
}
|
||||
|
||||
/// Sección **`[database]`** de la configuración. Forma parte de [`Settings`].
|
||||
#[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,
|
||||
/// Motor de base de datos.
|
||||
///
|
||||
/// Valores aceptados: `"mysql"` (también `"mariadb"`), `"postgres"` (también `"postgresql"`) y
|
||||
/// `"sqlite"`. Si se omite, la aplicación terminará con un error al arrancar.
|
||||
pub db_type: DbType,
|
||||
/// 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).
|
||||
|
|
@ -56,9 +59,27 @@ pub struct Database {
|
|||
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 (para mysql/postgres). Si es `None` se usa el puerto
|
||||
/// Puerto de conexión a la base de datos (para mysql/postgres). Si se omite, se usa el puerto
|
||||
/// predeterminado para el motor: 3306 para MySQL y 5432 para PostgreSQL.
|
||||
pub db_port: Option<u16>,
|
||||
/// Número máximo de conexiones habilitadas.
|
||||
pub max_pool_size: u32,
|
||||
}
|
||||
|
||||
/// Motor de base de datos. Usado en el campo [`Database::db_type`] de [`SETTINGS`].
|
||||
#[derive(Clone, Copy, Debug, Deserialize)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
pub enum DbType {
|
||||
/// Valor por defecto cuando `db_type` no está configurado. En este caso la aplicación terminará
|
||||
/// con un error al arrancar.
|
||||
#[serde(rename = "")]
|
||||
Unset,
|
||||
/// Usa el motor MySQL. Acepta también el alias `"mariadb"`.
|
||||
#[serde(alias = "mariadb")]
|
||||
Mysql,
|
||||
/// Usa el motor PostgreSQL. Acepta también el alias `"postgresql"`.
|
||||
#[serde(alias = "postgresql")]
|
||||
Postgres,
|
||||
/// Usa el motor SQLite.
|
||||
Sqlite,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -234,8 +234,8 @@ pub static CONFIG_VALUES: LazyLock<ConfigBuilder<DefaultState>> = LazyLock::new(
|
|||
macro_rules! include_config {
|
||||
( $SETTINGS_NAME:ident : $settings_type:ty => [ $( $k:literal => $v:expr ),* $(,)? ] ) => {
|
||||
#[doc = concat!(
|
||||
"Ajustes de configuración y **valores por defecto** para ",
|
||||
"[`", stringify!($settings_type), "`]."
|
||||
"Carga [`", stringify!($settings_type), "`] ",
|
||||
"(y aplica **valores por defecto** en claves no definidas)."
|
||||
)]
|
||||
#[doc = ""]
|
||||
#[doc = "Valores predeterminados que se aplican en ausencia de configuración:"]
|
||||
|
|
|
|||
|
|
@ -44,8 +44,7 @@ include_config!(SETTINGS: Settings => [
|
|||
|
||||
// **< Settings >***********************************************************************************
|
||||
|
||||
/// Tipos para las secciones globales [`[app]`](App), [`[dev]`](Dev), [`[log]`](Log) y
|
||||
/// [`[server]`](Server) de [`SETTINGS`].
|
||||
/// Ajustes para las secciones globales [`App`], [`Dev`], [`Log`] y [`Server`] de [`SETTINGS`].
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct Settings {
|
||||
pub app: App,
|
||||
|
|
@ -54,7 +53,7 @@ pub struct Settings {
|
|||
pub server: Server,
|
||||
}
|
||||
|
||||
/// Sección `[app]` de la configuración. Forma parte de [`Settings`].
|
||||
/// Sección **`[app]`** de la configuración. Forma parte de [`Settings`].
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct App {
|
||||
/// Nombre de la aplicación.
|
||||
|
|
@ -88,7 +87,7 @@ pub struct App {
|
|||
pub run_mode: String,
|
||||
}
|
||||
|
||||
/// Sección `[dev]` de la configuración. Forma parte de [`Settings`].
|
||||
/// Sección **`[dev]`** de la configuración. Forma parte de [`Settings`].
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct Dev {
|
||||
/// Directorio desde el que servir los archivos estáticos de PageTop.
|
||||
|
|
@ -102,7 +101,7 @@ pub struct Dev {
|
|||
pub pagetop_static_dir: String,
|
||||
}
|
||||
|
||||
/// Sección `[log]` de la configuración. Forma parte de [`Settings`].
|
||||
/// Sección **`[log]`** de la configuración. Forma parte de [`Settings`].
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct Log {
|
||||
/// Gestión de trazas y registro de eventos activada (*true*) o desactivada (*false*).
|
||||
|
|
@ -122,7 +121,7 @@ pub struct Log {
|
|||
pub format: LogFormat,
|
||||
}
|
||||
|
||||
/// Sección `[server]` de la configuración. Forma parte de [`Settings`].
|
||||
/// Sección **`[server]`** de la configuración. Forma parte de [`Settings`].
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct Server {
|
||||
/// Dirección de enlace para el servidor web.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue