♻️ [config] Inicializa la configuración global
This commit is contained in:
parent
62cc2a6201
commit
65c290a240
2 changed files with 13 additions and 6 deletions
|
|
@ -19,6 +19,9 @@ impl Application {
|
||||||
// Rótulo de presentación.
|
// Rótulo de presentación.
|
||||||
super::banner::print_on_startup();
|
super::banner::print_on_startup();
|
||||||
|
|
||||||
|
// Inicializa la configuración global.
|
||||||
|
LazyStatic::force(&super::config::SETTINGS);
|
||||||
|
|
||||||
// Inicia registro de trazas y eventos.
|
// Inicia registro de trazas y eventos.
|
||||||
LazyStatic::force(&super::tracing::TRACING);
|
LazyStatic::force(&super::tracing::TRACING);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,14 +42,15 @@
|
||||||
//! # Cómo añadir ajustes de configuración
|
//! # Cómo añadir ajustes de configuración
|
||||||
//!
|
//!
|
||||||
//! Para proporcionar a tu **aplicación** o **módulo** sus propios ajustes de configuración, añade
|
//! Para proporcionar a tu **aplicación** o **módulo** sus propios ajustes de configuración, añade
|
||||||
//! [*serde*](https://docs.rs/serde) en las dependencias de tu archivo *Cargo.toml*:
|
//! [*serde*](https://docs.rs/serde) en las dependencias de tu archivo *Cargo.toml* habilitando la
|
||||||
|
//! característica `derive`:
|
||||||
//!
|
//!
|
||||||
//! ```toml
|
//! ```toml
|
||||||
//! [dependencies]
|
//! [dependencies]
|
||||||
//! serde = { version = "1.0", features = ["derive"] }
|
//! serde = { version = "1.0", features = ["derive"] }
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! Declara ([`LazyStatic`]) e inicializa tus nuevos ajustes con tipos seguros
|
//! Y luego declara ([`LazyStatic`]) e inicializa tus ajustes con tipos seguros
|
||||||
//! ([`config::try_into<S>()`](try_into)) y valores predefinidos
|
//! ([`config::try_into<S>()`](try_into)) y valores predefinidos
|
||||||
//! ([`predefined_settings!`](crate::predefined_settings)):
|
//! ([`predefined_settings!`](crate::predefined_settings)):
|
||||||
//!
|
//!
|
||||||
|
|
@ -80,16 +81,19 @@
|
||||||
//! });
|
//! });
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! De hecho, así se declaran e inicializan los ajustes globales de la configuración
|
//! De hecho, esta es la forma en la que se declaran e inicializan los ajustes globales de la
|
||||||
//! ([`SETTINGS`](crate::app::config::SETTINGS)).
|
//! configuración ([`SETTINGS`](crate::app::config::SETTINGS)).
|
||||||
//!
|
//!
|
||||||
//! Usa la sintaxis TOML para añadir tu nueva sección `[myapp]` en los archivos de configuración,
|
//! Usa la sintaxis TOML para añadir tu nueva sección `[myapp]` en los archivos de configuración,
|
||||||
//! del mismo modo que `[log]` o `[server]` hacen para los ajustes globales
|
//! del mismo modo que se añaden `[log]` o `[server]` en los ajustes globales
|
||||||
//! ([`Settings`](crate::app::config::Settings)).
|
//! ([`Settings`](crate::app::config::Settings)).
|
||||||
//!
|
//!
|
||||||
//! Se recomienda inicializar todos los ajustes con valores predefinidos, o utilizar la notación
|
//! Se recomienda inicializar todos los ajustes con valores predefinidos, o utilizar la notación
|
||||||
//! `Option<T>` si van a ser tratados en el código como opcionales.
|
//! `Option<T>` si van a ser tratados en el código como opcionales.
|
||||||
//!
|
//!
|
||||||
|
//! Si no pueden inicializarse correctamente los ajustes de configuración, entonces la aplicación
|
||||||
|
//! ejecutará un panic! y detendrá la ejecución.
|
||||||
|
//!
|
||||||
//! Los ajustes de configuración siempre son de sólo lectura.
|
//! Los ajustes de configuración siempre son de sólo lectura.
|
||||||
//!
|
//!
|
||||||
//!
|
//!
|
||||||
|
|
@ -186,7 +190,7 @@ where
|
||||||
settings.set_default(key, *value).unwrap();
|
settings.set_default(key, *value).unwrap();
|
||||||
}
|
}
|
||||||
match settings.try_into() {
|
match settings.try_into() {
|
||||||
Ok(c) => c,
|
Ok(s) => s,
|
||||||
Err(e) => panic!("Error parsing settings: {}", e),
|
Err(e) => panic!("Error parsing settings: {}", e),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue