Crate smart_config_commands

source ·
Expand description

Command-line extensions for smart-config library.

The extensions are as follows:

  • Printing help for configuration params with optional filtering.
  • Debugging param values and deserialization errors.

All extensions are encapsulated in Printer.

§Examples

See the crate readme or the examples dir for captured output samples.

§Printing help

use smart_config::ConfigSchema;
use smart_config_commands::Printer;

let mut schema = ConfigSchema::default();
// Add configurations to the schema...

Printer::stderr().print_help(&schema, |_| true)?;

§Debugging param values

use smart_config::{ConfigSchema, ConfigRepository};
use smart_config_commands::Printer;

let mut schema = ConfigSchema::default();
// Add configurations to the schema...
let mut repo = ConfigRepository::new(&schema);
// Add sources to the repository...

Printer::stderr().print_debug(&repo, |param_ref| {
    // Allows filtering output params
    param_ref.canonical_path().starts_with("test.")
})?;

Structs§

  • Reference to a parameter on a configuration.
  • Wrapper around an I/O writer. Will style the output with ANSI sequences if appropriate.