ortho_config 0.9.0

A configuration management library for Rust, inspired by esbuild.
Documentation
Feature: CLI default as absent
  The `cli_default_as_absent` attribute allows non-Option fields with clap
  defaults to be treated as absent when the user did not override them on the
  CLI. This enables file and environment configuration to take precedence over
  clap defaults while still honouring explicit CLI overrides.

  Precedence (lowest to highest): struct defaults < file < environment < CLI.

  Scenario: file value overrides clap default
    Given a clap default punctuation "!"
    And a file punctuation "?"
    When the subcommand configuration is merged
    Then the resolved punctuation is "?"

  Scenario: environment overrides clap default
    Given a clap default punctuation "!"
    And an environment punctuation "..."
    When the subcommand configuration is merged
    Then the resolved punctuation is "..."

  Scenario: environment overrides file
    Given a clap default punctuation "!"
    And a file punctuation "?"
    And an environment punctuation "..."
    When the subcommand configuration is merged
    Then the resolved punctuation is "..."

  Scenario: explicit CLI overrides all
    Given a clap default punctuation "!"
    And a file punctuation "?"
    And an environment punctuation "..."
    And an explicit CLI punctuation "!!!"
    When the subcommand configuration is merged
    Then the resolved punctuation is "!!!"

  Scenario: clap default excluded from extraction
    Given a clap default punctuation "!"
    When CLI values are extracted
    Then punctuation is absent from extracted values

  Scenario: explicit CLI included in extraction
    Given an explicit CLI punctuation "!!!"
    When CLI values are extracted
    Then punctuation is present in extracted values