Introduktion
English | 中文 | 日本語 | 한국어 | Français | Deutsch | Español | Português | Svenska | Suomi | Nederlands
rust-config-tree tillhandahaller ateranvandbar laddning av
konfigurationstrad och CLI-hjalpare for Rust-program som anvander
lagerindelade konfigurationsfiler.
Craten bygger pa en liten ansvarsfördelning:
confiqueager schemadefinitioner, kodstandardvarden, validering och generering av konfigurationsmallar.figmentager runtime-laddning och runtime-kallmetadata.rust-config-treeager rekursiv include-traversering, include-sokvagsupplosning,.env-laddning, upptackt av mallmal och ateranvandbara clap-kommandon.
Craten ar anvandbar nar ett program vill ha en naturlig filstruktur for konfiguration, till exempel:
include:
- config/server.yaml
- config/database.yaml
log:
level: info
Varje inkluderad fil kan anvanda samma schemaform, och relativa
include-sokvagar loses fran filen som deklarerade dem. Den slutliga
konfigurationen ar fortfarande ett normalt confique-schemavarde.
Huvudfunktioner
- Rekursiv include-traversering med cykeldetektering.
- Relativa include-sokvagar loses fran deklarerande fil.
.envladdas innan miljo-providers utvarderas.- Schemadeklarerade miljovariabler utan delimitersplittring.
- Figment-metadata for runtime-kallspArning.
- KallspArningshandelser pa TRACE-niva via
tracing. - Draft 7 JSON Schema-generering for editor-komplettering och grundlaggande schemakontroller.
- Faltvardevalidering i programkod med
#[config(validate = Self::validate)], kord viaload_configellerconfig-validate. - Generering av YAML-, TOML-, JSON- och JSON5-mallar.
- TOML
#:schema, YAML Language Server-modelines och JSON/JSON5-$schema-falt for genererade mallar. - Opt-in YAML-malluppdelning for sektioner markerade med
x-tree-split. - Inbyggda clap-underkommandon for konfigurationsmallar, JSON Schema och skalkompletteringar.
- Ett lagre niva trad-API for anropare som inte anvander
confique.
Publika inganger
Anvand dessa API:er for de flesta program:
load_config::<S>(path)laddar det slutliga schemat.load_config_with_figment::<S>(path)laddar schemat och returnerar Figment-grafen som anvands for kallspArning.write_config_templates::<S>(config_path, output_path)skriver rotmallen och rekursivt upptackta barnmallar.write_config_schemas::<S>(output_path)skriver rot- och sektions-JSON Schemas enligt Draft 7.handle_config_command::<Cli, S>(command, config_path)hanterar inbyggda clap-konfigurationskommandon.
Anvand load_config_tree nar du behover traverseringsprimitiven utan
confique.