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

Introductie

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

rust-config-tree biedt herbruikbare configuratieboomlading en CLI-hulpmiddelen voor Rust-toepassingen die gelaagde configuratiebestanden gebruiken.

De crate is ontworpen rond een kleine verdeling van verantwoordelijkheden:

  • confique bezit schemadefinities, codestandaarden, validatie en generatie van configuratiesjablonen.
  • figment bezit runtime laden en runtime bronmetadata.
  • rust-config-tree bezit recursieve include-traversal, oplossen van include-paden, .env laden, ontdekking van sjabloondoelen en herbruikbare clap-opdrachten.

De crate is nuttig wanneer een toepassing een natuurlijke configuratie-indeling zoals deze wil:

include:
  - config/server.yaml
  - config/database.yaml

log:
  level: info

Elk geinclude bestand kan dezelfde schemavorm gebruiken, en relatieve include-paden worden opgelost vanuit het bestand dat ze declareerde. De uiteindelijke configuratie is nog steeds een normale confique-schemawaarde.

Hoofdfuncties

  • Recursieve include-traversal met cycledetectie.
  • Relatieve include-paden opgelost vanuit het declarerende bestand.
  • .env laden voordat omgevingsproviders worden geevalueerd.
  • Door het schema gedeclareerde omgevingsvariabelen zonder delimiter-splitting.
  • Figment-metadata voor runtime brontracking.
  • Brontrackingevents op TRACE-niveau via tracing.
  • Draft 7 JSON Schema-generatie voor editorcompletion en basale schemacontroles.
  • Veldwaardevalidatie in toepassingscode met #[config(validate = Self::validate)], uitgevoerd door load_config of config-validate.
  • YAML-, TOML-, JSON- en JSON5-sjabloongeneratie.
  • TOML #:schema, YAML Language Server-schemamodelines en JSON/JSON5 $schema-velden voor gegenereerde sjablonen.
  • Opt-in YAML-sjabloonsplitsing voor secties gemarkeerd met x-tree-split.
  • Ingebouwde clap-subcommands voor configuratiesjablonen, JSON Schema en shellcompletions.
  • Een lagere tree-API voor callers die geen confique gebruiken.

Publieke entrypoints

Gebruik deze API’s voor de meeste toepassingen:

  • load_config::<S>(path) laadt het uiteindelijke schema.
  • load_config_with_figment::<S>(path) laadt het schema en retourneert de Figment-grafiek die voor brontracking wordt gebruikt.
  • write_config_templates::<S>(config_path, output_path) schrijft het rootsjabloon en recursief ontdekte kindsjablonen.
  • write_config_schemas::<S>(output_path) schrijft root- en sectie-Draft 7 JSON Schemas.
  • handle_config_command::<Cli, S>(command, config_path) verwerkt ingebouwde clap-configuratieopdrachten.

Gebruik load_config_tree wanneer je de traversalprimitive zonder confique nodig hebt.