Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Suivi des sources

English | 中文 | 日本語 | 한국어 | Français | Deutsch | Español | Português | Svenska | Suomi | Nederlands

Utilisez load_config_with_figment pour conserver le graphe Figment utilise par le chargement d’execution :

#![allow(unused)]
fn main() {
use rust_config_tree::load_config_with_figment;

let (config, figment) = load_config_with_figment::<AppConfig>("config.yaml")?;
let _ = config;
Ok::<(), Box<dyn std::error::Error + Send + Sync>>(())
}

La valeur Figment renvoyee peut repondre aux questions de source pour les valeurs d’execution :

#![allow(unused)]
fn main() {
if let Some(metadata) = figment.find_metadata("database.pool_size") {
    let source = metadata.interpolate(
        &figment::Profile::Default,
        &["database", "pool_size"],
    );

    println!("database.pool_size came from {source}");
}
}

Pour les valeurs fournies par ConfiqueEnvProvider, l’interpolation renvoie le nom natif de la variable d’environnement declaree dans le schema :

database.pool_size came from APP_DATABASE_POOL_SIZE

Evenements TRACE

Le chargeur emet des evenements de suivi des sources avec tracing::trace!. Il ne le fait que lorsque TRACE est active :

#![allow(unused)]
fn main() {
use rust_config_tree::{load_config_with_figment, trace_config_sources};

let (config, figment) = load_config_with_figment::<AppConfig>("config.yaml")?;

// If the tracing subscriber is initialized after config loading, emit the
// same source events again after installing the subscriber.
trace_config_sources::<AppConfig>(&figment);
let _ = config;
Ok::<(), Box<dyn std::error::Error + Send + Sync>>(())
}

Chaque evenement utilise la cible rust_config_tree::config et inclut :

  • config_key : la cle de configuration avec points.
  • source : les metadonnees de source rendues.

Les valeurs qui viennent uniquement des valeurs par defaut confique n’ont pas de metadonnees Figment d’execution. Elles sont signalees comme confique default or unset optional field.