Miljovariabler
English | 中文 | 日本語 | 한국어 | Français | Deutsch | Español | Português | Svenska | Suomi | Nederlands
Miljovariabelnamn deklareras i schemat med confique:
#![allow(unused)]
fn main() {
#[derive(Debug, Config)]
struct DatabaseConfig {
#[config(env = "APP_DATABASE_URL")]
url: String,
#[config(default = 16)]
#[config(env = "APP_DATABASE_POOL_SIZE")]
pool_size: u32,
}
}
rust-config-tree laser dessa namn fran confique::Config::META och bygger en
Figment-provider som mappar varje miljovariabel till dess exakta faltvag.
Anvand inte delimiterbaserad Figment-miljomappning for denna crate:
#![allow(unused)]
fn main() {
// Do not use this pattern for rust-config-tree schemas.
Env::prefixed("APP_").split("_")
Env::prefixed("APP_").split("__")
}
split("_") behandlar understreck som separatorer for nastlade nycklar. Det gor
att APP_DATABASE_POOL_SIZE blir en vag som database.pool.size, vilket
krockar med Rust-faltnamn som pool_size.
Med ConfiqueEnvProvider ar mappningen explicit:
APP_DATABASE_POOL_SIZE -> database.pool_size
Enskilda understreck fortsatter vara en del av miljovariabelnamnet. Figment gissar ingen nastlingsregel.
Dotenv-laddning
Innan runtime-providers utvarderas letar laddaren efter en .env-fil genom att
ga uppat fran rotkonfigurationsfilens katalog.
Befintliga processmiljovariabler bevaras. Varden fran .env fyller bara i
saknade miljovariabler.
Exempel:
APP_SERVER_PORT=9000
APP_DATABASE_POOL_SIZE=64
Dessa variabler skriver over konfigurationsfilvarden nar schemat deklarerar
matchande #[config(env = "...")]-attribut.
Parsning av varden
Bryggprovidern later Figment parsa miljovarden. Den anropar inte confique:s
parse_env-hooks. Hall komplexa varden i konfigurationsfiler om inte Figments
syntax for miljovarden passar typen.