Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parsing error on positional arguments after mixing a multiple-valued positional arg with a flag #5115

Open
2 tasks done
marcospb19 opened this issue Sep 8, 2023 · 0 comments
Labels
C-bug Category: Updating dependencies

Comments

@marcospb19
Copy link
Contributor

marcospb19 commented Sep 8, 2023

Please complete the following tasks

Rust Version

cargo 1.74.0-nightly (925280f02 2023-08-25)

Clap Version

4.4.2

Minimal reproducible code

use clap::Parser;

#[derive(Parser, PartialEq)]
pub enum Subcommand {
    Compress {
        #[arg(required = true)]
        files: Vec<String>,

        #[arg(required = true)]
        output: String,

        #[arg(short)]
        verbose: bool,
    },
}

fn main() {
    let inputs = [
        "ouch compress a b c output -v",
        "ouch compress a b c -v output",
        "ouch compress a b -v c output",
        "ouch compress a -v b c output",
        "ouch compress -v a b c output",
    ];
    let expected = Subcommand::Compress {
        files: ["a", "b", "c"].map(Into::into).to_vec(),
        verbose: true,
        output: "output".into(),
    };

    for input in inputs {
        let result = Subcommand::try_parse_from(input.split_whitespace());
        let result = result.map(|ok| ok == expected).map_err(|_| ());
        println!("{input}, {result:?}");
    }
}

Outputs:

"ouch compress a b c output -v", Ok(true)
"ouch compress a b c -v output", Err(())
"ouch compress a b -v c output", Err(())
"ouch compress a -v b c output", Err(())
"ouch compress -v a b c output", Ok(true)

Steps to reproduce the bug with the above code

cargo run

Actual Behaviour

Parsing fails in 3 out of the 5 cases provided in the example.

Expected Behaviour

Succeed in all 5 cases.

Additional Context

With this definition, the following input parses OK:

Compress {
    #[arg(required = true)]
    files: Vec<String>,

    #[arg(required = true)]
    output: String,
},

"ouch compress a b c output" // parses ok!

And, with this definition, the following inputs parse OK:

Compress {
    #[arg(required = true)]
    files: Vec<String>,

    #[arg(short)]
    verbose: bool,
},

"ouch compress a b c -v" // parses ok!
"ouch compress a b -v c" // parses ok!
"ouch compress a -v b c" // parses ok!
"ouch compress -v a b c" // parses ok!

So, I assumed that merging both would work, but it doesn't (in 3/5 cases).

Repeating here the output of Minimal reproducible Code:

"ouch compress a b c output -v", Ok(true)
"ouch compress a b c -v output", Err(())
"ouch compress a b -v c output", Err(())
"ouch compress a -v b c output", Err(())
"ouch compress -v a b c output", Ok(true)

Debug Output

"ouch compress a b c output -v" -> Ok(true))
[clap_builder::builder::command]Command::_do_parse
[clap_builder::builder::command]Command::_build: name="rust"
[clap_builder::builder::command]Command::_propagate:rust
[clap_builder::builder::command]Command::_check_help_and_version:rust expand_help_tree=false
[clap_builder::builder::command]Command::long_help_exists
[clap_builder::builder::command]Command::_check_help_and_version: Building default --help
[clap_builder::builder::command]Command::_check_help_and_version: Building help subcommand
[clap_builder::builder::command]Command::_propagate_global_args:rust
[clap_builder::builder::debug_asserts]Command::_debug_asserts
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:help
[clap_builder::builder::debug_asserts]Command::_verify_positionals
[clap_builder::parser::parser]Parser::get_matches_with
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"compress"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("compress")
[clap_builder::parser::parser]Parser::get_matches_with: sc=Some("compress")
[clap_builder::parser::parser]Parser::parse_subcommand
[ clap_builder::output::usage]Usage::get_required_usage_from: incls=[], matcher=false, incl_last=true
[ clap_builder::output::usage]Usage::get_required_usage_from: unrolled_reqs=[]
[ clap_builder::output::usage]Usage::get_required_usage_from: ret_val=[]
[clap_builder::builder::command]Command::_build_subcommand Setting bin_name of compress to "ouch compress"
[clap_builder::builder::command]Command::_build_subcommand Setting display_name of compress to "rust-compress"
[clap_builder::builder::command]Command::_build: name="compress"
[clap_builder::builder::command]Command::_propagate:compress
[clap_builder::builder::command]Command::_check_help_and_version:compress expand_help_tree=false
[clap_builder::builder::command]Command::long_help_exists
[clap_builder::builder::command]Command::_check_help_and_version: Building default --help
[clap_builder::builder::command]Command::_propagate_global_args:compress
[clap_builder::builder::debug_asserts]Command::_debug_asserts
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:files
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:output
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:verbose
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:help
[clap_builder::builder::debug_asserts]Command::_verify_positionals
[clap_builder::parser::parser]Parser::parse_subcommand: About to parse sc=compress
[clap_builder::parser::parser]Parser::get_matches_with
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"a"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("a")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "b":files
[clap_builder::parser::parser]Parser::is_new_arg: value
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("b")
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"b"'
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "c":files
[clap_builder::parser::parser]Parser::is_new_arg: value
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("c")
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"c"'
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "output":files
[clap_builder::parser::parser]Parser::is_new_arg: value
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("output")
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"output"'
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "-v":files
[clap_builder::parser::parser]Parser::is_new_arg: -<something> found
[clap_builder::parser::parser]Parser::get_matches_with: Bumping the positional counter...
[clap_builder::parser::parser]Parser::resolve_pending: id="files"
[clap_builder::parser::parser]Parser::react action=Append, identifier=Some(Index), source=CommandLine
[clap_builder::parser::parser]Parser::remove_overrides: id="files"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="files", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="files"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["a", "b", "c"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=1
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=2
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=3
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: o=files, pending=0
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: expected=1..=18446744073709551615, actual=0
[clap_builder::parser::parser]Parser::react not enough values passed in, leaving it to the validator to complain
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"-v"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("-v")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::parse_short_arg: short_arg=ShortFlags { inner: "v", utf8_prefix: CharIndices { front_offset: 0, iter: Chars(['v']) }, invalid_suffix: None }
[clap_builder::parser::parser]Parser::parse_short_arg:iter:v
[clap_builder::parser::parser]Parser::parse_short_arg:iter:v: Found valid opt or flag
[clap_builder::parser::parser]Parser::resolve_pending: id="output"
[clap_builder::parser::parser]Parser::react action=Set, identifier=Some(Index), source=CommandLine
[clap_builder::parser::parser]Parser::remove_overrides: id="output"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="output", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="output"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["output"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=4
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: o=output, pending=0
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: expected=1, actual=0
[clap_builder::parser::parser]Parser::react not enough values passed in, leaving it to the validator to complain
[clap_builder::parser::parser]Parser::react action=SetTrue, identifier=Some(Short), source=CommandLine
[clap_builder::parser::parser]Parser::react: has default_missing_vals
[clap_builder::parser::parser]Parser::remove_overrides: id="verbose"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="verbose", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="verbose"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["true"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=5
[clap_builder::parser::parser]Parser::get_matches_with: After parse_short_arg ValuesDone
[clap_builder::parser::parser]Parser::add_env
[clap_builder::parser::parser]Parser::add_env: Skipping existing arg `<FILES>...`
[clap_builder::parser::parser]Parser::add_env: Skipping existing arg `<OUTPUT>`
[clap_builder::parser::parser]Parser::add_env: Skipping existing arg `-v`
[clap_builder::parser::parser]Parser::add_env: Checking arg `--help`
[clap_builder::parser::parser]Parser::add_defaults
[clap_builder::parser::parser]Parser::add_defaults:iter:files:
[clap_builder::parser::parser]Parser::add_default_value: doesn't have conditional defaults
[clap_builder::parser::parser]Parser::add_default_value:iter:files: doesn't have default vals
[clap_builder::parser::parser]Parser::add_defaults:iter:output:
[clap_builder::parser::parser]Parser::add_default_value: doesn't have conditional defaults
[clap_builder::parser::parser]Parser::add_default_value:iter:output: doesn't have default vals
[clap_builder::parser::parser]Parser::add_defaults:iter:verbose:
[clap_builder::parser::parser]Parser::add_default_value: doesn't have conditional defaults
[clap_builder::parser::parser]Parser::add_default_value:iter:verbose: has default vals
[clap_builder::parser::parser]Parser::add_default_value:iter:verbose: was used
[clap_builder::parser::parser]Parser::add_defaults:iter:help:
[clap_builder::parser::parser]Parser::add_default_value: doesn't have conditional defaults
[clap_builder::parser::parser]Parser::add_default_value:iter:help: doesn't have default vals
[clap_builder::parser::validator]Validator::validate
[clap_builder::builder::command]Command::groups_for_arg: id="files"
[clap_builder::parser::validator]Conflicts::gather_direct_conflicts id="files", conflicts=[]
[clap_builder::parser::validator]Conflicts::gather_direct_conflicts id="Compress", conflicts=[]
[clap_builder::builder::command]Command::groups_for_arg: id="output"
[clap_builder::parser::validator]Conflicts::gather_direct_conflicts id="output", conflicts=[]
[clap_builder::builder::command]Command::groups_for_arg: id="verbose"
[clap_builder::parser::validator]Conflicts::gather_direct_conflicts id="verbose", conflicts=[]
[clap_builder::parser::validator]Validator::validate_conflicts
[clap_builder::parser::validator]Validator::validate_exclusive
[clap_builder::parser::validator]Validator::validate_exclusive:iter:"files"
[clap_builder::parser::validator]Validator::validate_exclusive:iter:"Compress"
[clap_builder::parser::validator]Validator::validate_exclusive:iter:"output"
[clap_builder::parser::validator]Validator::validate_exclusive:iter:"verbose"
[clap_builder::parser::validator]Validator::validate_conflicts::iter: id="files"
[clap_builder::parser::validator]Conflicts::gather_conflicts: arg="files"
[clap_builder::parser::validator]Conflicts::gather_conflicts: conflicts=[]
[clap_builder::parser::validator]Validator::validate_conflicts::iter: id="output"
[clap_builder::parser::validator]Conflicts::gather_conflicts: arg="output"
[clap_builder::parser::validator]Conflicts::gather_conflicts: conflicts=[]
[clap_builder::parser::validator]Validator::validate_conflicts::iter: id="verbose"
[clap_builder::parser::validator]Conflicts::gather_conflicts: arg="verbose"
[clap_builder::parser::validator]Conflicts::gather_conflicts: conflicts=[]
[clap_builder::parser::validator]Validator::validate_required: required=ChildGraph([Child { id: "files", children: [] }, Child { id: "output", children: [] }])
[clap_builder::parser::validator]Validator::gather_requires
[clap_builder::parser::validator]Validator::gather_requires:iter:"files"
[clap_builder::parser::validator]Validator::gather_requires:iter:"Compress"
[clap_builder::parser::validator]Validator::gather_requires:iter:"Compress":group
[clap_builder::parser::validator]Validator::gather_requires:iter:"output"
[clap_builder::parser::validator]Validator::gather_requires:iter:"verbose"
[clap_builder::parser::validator]Validator::validate_required: is_exclusive_present=false
[clap_builder::parser::parser]Parser::add_env
[clap_builder::parser::parser]Parser::add_env: Checking arg `--help`
[clap_builder::parser::parser]Parser::add_defaults
[clap_builder::parser::parser]Parser::add_defaults:iter:help:
[clap_builder::parser::parser]Parser::add_default_value: doesn't have conditional defaults
[clap_builder::parser::parser]Parser::add_default_value:iter:help: doesn't have default vals
[clap_builder::parser::validator]Validator::validate
[clap_builder::parser::validator]Validator::validate_conflicts
[clap_builder::parser::validator]Validator::validate_exclusive
[clap_builder::parser::validator]Validator::validate_required: required=ChildGraph([])
[clap_builder::parser::validator]Validator::gather_requires
[clap_builder::parser::validator]Validator::validate_required: is_exclusive_present=false
[clap_builder::parser::arg_matcher]ArgMatcher::get_global_values: global_arg_vec=[]
"ouch compress a b c -v output" -> Err(()))
[clap_builder::builder::command]Command::_do_parse
[clap_builder::builder::command]Command::_build: name="rust"
[clap_builder::builder::command]Command::_propagate:rust
[clap_builder::builder::command]Command::_check_help_and_version:rust expand_help_tree=false
[clap_builder::builder::command]Command::long_help_exists
[clap_builder::builder::command]Command::_check_help_and_version: Building default --help
[clap_builder::builder::command]Command::_check_help_and_version: Building help subcommand
[clap_builder::builder::command]Command::_propagate_global_args:rust
[clap_builder::builder::debug_asserts]Command::_debug_asserts
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:help
[clap_builder::builder::debug_asserts]Command::_verify_positionals
[clap_builder::parser::parser]Parser::get_matches_with
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"compress"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("compress")
[clap_builder::parser::parser]Parser::get_matches_with: sc=Some("compress")
[clap_builder::parser::parser]Parser::parse_subcommand
[ clap_builder::output::usage]Usage::get_required_usage_from: incls=[], matcher=false, incl_last=true
[ clap_builder::output::usage]Usage::get_required_usage_from: unrolled_reqs=[]
[ clap_builder::output::usage]Usage::get_required_usage_from: ret_val=[]
[clap_builder::builder::command]Command::_build_subcommand Setting bin_name of compress to "ouch compress"
[clap_builder::builder::command]Command::_build_subcommand Setting display_name of compress to "rust-compress"
[clap_builder::builder::command]Command::_build: name="compress"
[clap_builder::builder::command]Command::_propagate:compress
[clap_builder::builder::command]Command::_check_help_and_version:compress expand_help_tree=false
[clap_builder::builder::command]Command::long_help_exists
[clap_builder::builder::command]Command::_check_help_and_version: Building default --help
[clap_builder::builder::command]Command::_propagate_global_args:compress
[clap_builder::builder::debug_asserts]Command::_debug_asserts
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:files
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:output
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:verbose
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:help
[clap_builder::builder::debug_asserts]Command::_verify_positionals
[clap_builder::parser::parser]Parser::parse_subcommand: About to parse sc=compress
[clap_builder::parser::parser]Parser::get_matches_with
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"a"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("a")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "b":files
[clap_builder::parser::parser]Parser::is_new_arg: value
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("b")
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"b"'
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "c":files
[clap_builder::parser::parser]Parser::is_new_arg: value
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("c")
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"c"'
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "-v":files
[clap_builder::parser::parser]Parser::is_new_arg: -<something> found
[clap_builder::parser::parser]Parser::get_matches_with: Bumping the positional counter...
[clap_builder::parser::parser]Parser::resolve_pending: id="files"
[clap_builder::parser::parser]Parser::react action=Append, identifier=Some(Index), source=CommandLine
[clap_builder::parser::parser]Parser::remove_overrides: id="files"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="files", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="files"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["a", "b"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=1
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=2
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: o=files, pending=0
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: expected=1..=18446744073709551615, actual=0
[clap_builder::parser::parser]Parser::react not enough values passed in, leaving it to the validator to complain
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"-v"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("-v")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::parse_short_arg: short_arg=ShortFlags { inner: "v", utf8_prefix: CharIndices { front_offset: 0, iter: Chars(['v']) }, invalid_suffix: None }
[clap_builder::parser::parser]Parser::parse_short_arg:iter:v
[clap_builder::parser::parser]Parser::parse_short_arg:iter:v: Found valid opt or flag
[clap_builder::parser::parser]Parser::resolve_pending: id="output"
[clap_builder::parser::parser]Parser::react action=Set, identifier=Some(Index), source=CommandLine
[clap_builder::parser::parser]Parser::remove_overrides: id="output"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="output", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="output"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["c"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=3
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: o=output, pending=0
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: expected=1, actual=0
[clap_builder::parser::parser]Parser::react not enough values passed in, leaving it to the validator to complain
[clap_builder::parser::parser]Parser::react action=SetTrue, identifier=Some(Short), source=CommandLine
[clap_builder::parser::parser]Parser::react: has default_missing_vals
[clap_builder::parser::parser]Parser::remove_overrides: id="verbose"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="verbose", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="verbose"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["true"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=4
[clap_builder::parser::parser]Parser::get_matches_with: After parse_short_arg ValuesDone
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"output"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("output")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...3
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...false
[ clap_builder::output::usage]Usage::create_usage_with_title
[ clap_builder::output::usage]Usage::create_usage_no_title
[ clap_builder::output::usage]Usage::create_help_usage; incl_reqs=true
[ clap_builder::output::usage]Usage::needs_options_tag
[ clap_builder::output::usage]Usage::needs_options_tag:iter: f=verbose
[clap_builder::builder::command]Command::groups_for_arg: id="verbose"
[ clap_builder::output::usage]Usage::needs_options_tag:iter:iter: grp_s="Compress"
[ clap_builder::output::usage]Usage::needs_options_tag:iter: [OPTIONS] required
[ clap_builder::output::usage]Usage::get_args: incls=[]
[ clap_builder::output::usage]Usage::get_args: unrolled_reqs=["files", "output"]
[ clap_builder::output::usage]Usage::get_args: ret_val=[StyledStr("<FILES>..."), StyledStr("<OUTPUT>")]
[ clap_builder::output::usage]Usage::create_help_usage: usage=ouch compress [OPTIONS] <FILES>... <OUTPUT>
[clap_builder::builder::command]Command::color: Color setting...
[clap_builder::builder::command]Auto
[clap_builder::builder::command]Command::color: Color setting...
[clap_builder::builder::command]Auto
"ouch compress a b -v c output" -> Err(()))
[clap_builder::builder::command]Command::_do_parse
[clap_builder::builder::command]Command::_build: name="rust"
[clap_builder::builder::command]Command::_propagate:rust
[clap_builder::builder::command]Command::_check_help_and_version:rust expand_help_tree=false
[clap_builder::builder::command]Command::long_help_exists
[clap_builder::builder::command]Command::_check_help_and_version: Building default --help
[clap_builder::builder::command]Command::_check_help_and_version: Building help subcommand
[clap_builder::builder::command]Command::_propagate_global_args:rust
[clap_builder::builder::debug_asserts]Command::_debug_asserts
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:help
[clap_builder::builder::debug_asserts]Command::_verify_positionals
[clap_builder::parser::parser]Parser::get_matches_with
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"compress"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("compress")
[clap_builder::parser::parser]Parser::get_matches_with: sc=Some("compress")
[clap_builder::parser::parser]Parser::parse_subcommand
[ clap_builder::output::usage]Usage::get_required_usage_from: incls=[], matcher=false, incl_last=true
[ clap_builder::output::usage]Usage::get_required_usage_from: unrolled_reqs=[]
[ clap_builder::output::usage]Usage::get_required_usage_from: ret_val=[]
[clap_builder::builder::command]Command::_build_subcommand Setting bin_name of compress to "ouch compress"
[clap_builder::builder::command]Command::_build_subcommand Setting display_name of compress to "rust-compress"
[clap_builder::builder::command]Command::_build: name="compress"
[clap_builder::builder::command]Command::_propagate:compress
[clap_builder::builder::command]Command::_check_help_and_version:compress expand_help_tree=false
[clap_builder::builder::command]Command::long_help_exists
[clap_builder::builder::command]Command::_check_help_and_version: Building default --help
[clap_builder::builder::command]Command::_propagate_global_args:compress
[clap_builder::builder::debug_asserts]Command::_debug_asserts
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:files
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:output
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:verbose
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:help
[clap_builder::builder::debug_asserts]Command::_verify_positionals
[clap_builder::parser::parser]Parser::parse_subcommand: About to parse sc=compress
[clap_builder::parser::parser]Parser::get_matches_with
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"a"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("a")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "b":files
[clap_builder::parser::parser]Parser::is_new_arg: value
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("b")
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"b"'
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "-v":files
[clap_builder::parser::parser]Parser::is_new_arg: -<something> found
[clap_builder::parser::parser]Parser::get_matches_with: Bumping the positional counter...
[clap_builder::parser::parser]Parser::resolve_pending: id="files"
[clap_builder::parser::parser]Parser::react action=Append, identifier=Some(Index), source=CommandLine
[clap_builder::parser::parser]Parser::remove_overrides: id="files"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="files", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="files"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["a"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=1
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: o=files, pending=0
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: expected=1..=18446744073709551615, actual=0
[clap_builder::parser::parser]Parser::react not enough values passed in, leaving it to the validator to complain
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"-v"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("-v")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::parse_short_arg: short_arg=ShortFlags { inner: "v", utf8_prefix: CharIndices { front_offset: 0, iter: Chars(['v']) }, invalid_suffix: None }
[clap_builder::parser::parser]Parser::parse_short_arg:iter:v
[clap_builder::parser::parser]Parser::parse_short_arg:iter:v: Found valid opt or flag
[clap_builder::parser::parser]Parser::resolve_pending: id="output"
[clap_builder::parser::parser]Parser::react action=Set, identifier=Some(Index), source=CommandLine
[clap_builder::parser::parser]Parser::remove_overrides: id="output"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="output", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="output"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["b"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=2
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: o=output, pending=0
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: expected=1, actual=0
[clap_builder::parser::parser]Parser::react not enough values passed in, leaving it to the validator to complain
[clap_builder::parser::parser]Parser::react action=SetTrue, identifier=Some(Short), source=CommandLine
[clap_builder::parser::parser]Parser::react: has default_missing_vals
[clap_builder::parser::parser]Parser::remove_overrides: id="verbose"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="verbose", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="verbose"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["true"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=3
[clap_builder::parser::parser]Parser::get_matches_with: After parse_short_arg ValuesDone
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"c"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("c")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...3
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...false
[ clap_builder::output::usage]Usage::create_usage_with_title
[ clap_builder::output::usage]Usage::create_usage_no_title
[ clap_builder::output::usage]Usage::create_help_usage; incl_reqs=true
[ clap_builder::output::usage]Usage::needs_options_tag
[ clap_builder::output::usage]Usage::needs_options_tag:iter: f=verbose
[clap_builder::builder::command]Command::groups_for_arg: id="verbose"
[ clap_builder::output::usage]Usage::needs_options_tag:iter:iter: grp_s="Compress"
[ clap_builder::output::usage]Usage::needs_options_tag:iter: [OPTIONS] required
[ clap_builder::output::usage]Usage::get_args: incls=[]
[ clap_builder::output::usage]Usage::get_args: unrolled_reqs=["files", "output"]
[ clap_builder::output::usage]Usage::get_args: ret_val=[StyledStr("<FILES>..."), StyledStr("<OUTPUT>")]
[ clap_builder::output::usage]Usage::create_help_usage: usage=ouch compress [OPTIONS] <FILES>... <OUTPUT>
[clap_builder::builder::command]Command::color: Color setting...
[clap_builder::builder::command]Auto
[clap_builder::builder::command]Command::color: Color setting...
[clap_builder::builder::command]Auto
"ouch compress a -v b c output" -> Err(()))
[clap_builder::builder::command]Command::_do_parse
[clap_builder::builder::command]Command::_build: name="rust"
[clap_builder::builder::command]Command::_propagate:rust
[clap_builder::builder::command]Command::_check_help_and_version:rust expand_help_tree=false
[clap_builder::builder::command]Command::long_help_exists
[clap_builder::builder::command]Command::_check_help_and_version: Building default --help
[clap_builder::builder::command]Command::_check_help_and_version: Building help subcommand
[clap_builder::builder::command]Command::_propagate_global_args:rust
[clap_builder::builder::debug_asserts]Command::_debug_asserts
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:help
[clap_builder::builder::debug_asserts]Command::_verify_positionals
[clap_builder::parser::parser]Parser::get_matches_with
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"compress"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("compress")
[clap_builder::parser::parser]Parser::get_matches_with: sc=Some("compress")
[clap_builder::parser::parser]Parser::parse_subcommand
[ clap_builder::output::usage]Usage::get_required_usage_from: incls=[], matcher=false, incl_last=true
[ clap_builder::output::usage]Usage::get_required_usage_from: unrolled_reqs=[]
[ clap_builder::output::usage]Usage::get_required_usage_from: ret_val=[]
[clap_builder::builder::command]Command::_build_subcommand Setting bin_name of compress to "ouch compress"
[clap_builder::builder::command]Command::_build_subcommand Setting display_name of compress to "rust-compress"
[clap_builder::builder::command]Command::_build: name="compress"
[clap_builder::builder::command]Command::_propagate:compress
[clap_builder::builder::command]Command::_check_help_and_version:compress expand_help_tree=false
[clap_builder::builder::command]Command::long_help_exists
[clap_builder::builder::command]Command::_check_help_and_version: Building default --help
[clap_builder::builder::command]Command::_propagate_global_args:compress
[clap_builder::builder::debug_asserts]Command::_debug_asserts
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:files
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:output
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:verbose
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:help
[clap_builder::builder::debug_asserts]Command::_verify_positionals
[clap_builder::parser::parser]Parser::parse_subcommand: About to parse sc=compress
[clap_builder::parser::parser]Parser::get_matches_with
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"a"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("a")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "-v":files
[clap_builder::parser::parser]Parser::is_new_arg: -<something> found
[clap_builder::parser::parser]Parser::get_matches_with: Bumping the positional counter...
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"-v"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("-v")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::parse_short_arg: short_arg=ShortFlags { inner: "v", utf8_prefix: CharIndices { front_offset: 0, iter: Chars(['v']) }, invalid_suffix: None }
[clap_builder::parser::parser]Parser::parse_short_arg:iter:v
[clap_builder::parser::parser]Parser::parse_short_arg:iter:v: Found valid opt or flag
[clap_builder::parser::parser]Parser::resolve_pending: id="output"
[clap_builder::parser::parser]Parser::react action=Set, identifier=Some(Index), source=CommandLine
[clap_builder::parser::parser]Parser::remove_overrides: id="output"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="output", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="output"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["a"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=1
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: o=output, pending=0
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: expected=1, actual=0
[clap_builder::parser::parser]Parser::react not enough values passed in, leaving it to the validator to complain
[clap_builder::parser::parser]Parser::react action=SetTrue, identifier=Some(Short), source=CommandLine
[clap_builder::parser::parser]Parser::react: has default_missing_vals
[clap_builder::parser::parser]Parser::remove_overrides: id="verbose"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="verbose", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="verbose"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["true"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=2
[clap_builder::parser::parser]Parser::get_matches_with: After parse_short_arg ValuesDone
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"b"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("b")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...3
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...false
[ clap_builder::output::usage]Usage::create_usage_with_title
[ clap_builder::output::usage]Usage::create_usage_no_title
[ clap_builder::output::usage]Usage::create_help_usage; incl_reqs=true
[ clap_builder::output::usage]Usage::needs_options_tag
[ clap_builder::output::usage]Usage::needs_options_tag:iter: f=verbose
[clap_builder::builder::command]Command::groups_for_arg: id="verbose"
[ clap_builder::output::usage]Usage::needs_options_tag:iter:iter: grp_s="Compress"
[ clap_builder::output::usage]Usage::needs_options_tag:iter: [OPTIONS] required
[ clap_builder::output::usage]Usage::get_args: incls=[]
[ clap_builder::output::usage]Usage::get_args: unrolled_reqs=["files", "output"]
[ clap_builder::output::usage]Usage::get_args: ret_val=[StyledStr("<FILES>..."), StyledStr("<OUTPUT>")]
[ clap_builder::output::usage]Usage::create_help_usage: usage=ouch compress [OPTIONS] <FILES>... <OUTPUT>
[clap_builder::builder::command]Command::color: Color setting...
[clap_builder::builder::command]Auto
[clap_builder::builder::command]Command::color: Color setting...
[clap_builder::builder::command]Auto
"ouch compress -v a b c output" -> Ok(true))
[clap_builder::builder::command]Command::_do_parse
[clap_builder::builder::command]Command::_build: name="rust"
[clap_builder::builder::command]Command::_propagate:rust
[clap_builder::builder::command]Command::_check_help_and_version:rust expand_help_tree=false
[clap_builder::builder::command]Command::long_help_exists
[clap_builder::builder::command]Command::_check_help_and_version: Building default --help
[clap_builder::builder::command]Command::_check_help_and_version: Building help subcommand
[clap_builder::builder::command]Command::_propagate_global_args:rust
[clap_builder::builder::debug_asserts]Command::_debug_asserts
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:help
[clap_builder::builder::debug_asserts]Command::_verify_positionals
[clap_builder::parser::parser]Parser::get_matches_with
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"compress"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("compress")
[clap_builder::parser::parser]Parser::get_matches_with: sc=Some("compress")
[clap_builder::parser::parser]Parser::parse_subcommand
[ clap_builder::output::usage]Usage::get_required_usage_from: incls=[], matcher=false, incl_last=true
[ clap_builder::output::usage]Usage::get_required_usage_from: unrolled_reqs=[]
[ clap_builder::output::usage]Usage::get_required_usage_from: ret_val=[]
[clap_builder::builder::command]Command::_build_subcommand Setting bin_name of compress to "ouch compress"
[clap_builder::builder::command]Command::_build_subcommand Setting display_name of compress to "rust-compress"
[clap_builder::builder::command]Command::_build: name="compress"
[clap_builder::builder::command]Command::_propagate:compress
[clap_builder::builder::command]Command::_check_help_and_version:compress expand_help_tree=false
[clap_builder::builder::command]Command::long_help_exists
[clap_builder::builder::command]Command::_check_help_and_version: Building default --help
[clap_builder::builder::command]Command::_propagate_global_args:compress
[clap_builder::builder::debug_asserts]Command::_debug_asserts
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:files
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:output
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:verbose
[clap_builder::builder::debug_asserts]Arg::_debug_asserts:help
[clap_builder::builder::debug_asserts]Command::_verify_positionals
[clap_builder::parser::parser]Parser::parse_subcommand: About to parse sc=compress
[clap_builder::parser::parser]Parser::get_matches_with
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"-v"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("-v")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::parse_short_arg: short_arg=ShortFlags { inner: "v", utf8_prefix: CharIndices { front_offset: 0, iter: Chars(['v']) }, invalid_suffix: None }
[clap_builder::parser::parser]Parser::parse_short_arg:iter:v
[clap_builder::parser::parser]Parser::parse_short_arg:iter:v: Found valid opt or flag
[clap_builder::parser::parser]Parser::react action=SetTrue, identifier=Some(Short), source=CommandLine
[clap_builder::parser::parser]Parser::react: has default_missing_vals
[clap_builder::parser::parser]Parser::remove_overrides: id="verbose"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="verbose", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="verbose"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["true"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=1
[clap_builder::parser::parser]Parser::get_matches_with: After parse_short_arg ValuesDone
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"a"'
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("a")
[clap_builder::parser::parser]Parser::get_matches_with: sc=None
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "b":files
[clap_builder::parser::parser]Parser::is_new_arg: value
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("b")
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"b"'
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "c":files
[clap_builder::parser::parser]Parser::is_new_arg: value
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("c")
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"c"'
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::is_new_arg: "output":files
[clap_builder::parser::parser]Parser::is_new_arg: value
[clap_builder::parser::parser]Parser::possible_subcommand: arg=Ok("output")
[clap_builder::parser::parser]Parser::get_matches_with: Begin parsing '"output"'
[clap_builder::parser::parser]Parser::get_matches_with: Positional counter...1
[clap_builder::parser::parser]Parser::get_matches_with: Low index multiples...true
[clap_builder::parser::parser]Parser::get_matches_with: Bumping the positional counter...
[clap_builder::parser::parser]Parser::resolve_pending: id="files"
[clap_builder::parser::parser]Parser::react action=Append, identifier=Some(Index), source=CommandLine
[clap_builder::parser::parser]Parser::remove_overrides: id="files"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="files", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="files"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["a", "b", "c"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=2
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=3
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=4
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: o=files, pending=0
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: expected=1..=18446744073709551615, actual=0
[clap_builder::parser::parser]Parser::react not enough values passed in, leaving it to the validator to complain
[clap_builder::parser::parser]Parser::resolve_pending: id="output"
[clap_builder::parser::parser]Parser::react action=Set, identifier=Some(Index), source=CommandLine
[clap_builder::parser::parser]Parser::remove_overrides: id="output"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="output", source=CommandLine
[clap_builder::builder::command]Command::groups_for_arg: id="output"
[clap_builder::parser::arg_matcher]ArgMatcher::start_custom_arg: id="Compress", source=CommandLine
[clap_builder::parser::parser]Parser::push_arg_values: ["output"]
[clap_builder::parser::parser]Parser::add_single_val_to_arg: cur_idx:=5
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: o=output, pending=0
[clap_builder::parser::arg_matcher]ArgMatcher::needs_more_vals: expected=1, actual=0
[clap_builder::parser::parser]Parser::react not enough values passed in, leaving it to the validator to complain
[clap_builder::parser::parser]Parser::add_env
[clap_builder::parser::parser]Parser::add_env: Skipping existing arg `<FILES>...`
[clap_builder::parser::parser]Parser::add_env: Skipping existing arg `<OUTPUT>`
[clap_builder::parser::parser]Parser::add_env: Skipping existing arg `-v`
[clap_builder::parser::parser]Parser::add_env: Checking arg `--help`
[clap_builder::parser::parser]Parser::add_defaults
[clap_builder::parser::parser]Parser::add_defaults:iter:files:
[clap_builder::parser::parser]Parser::add_default_value: doesn't have conditional defaults
[clap_builder::parser::parser]Parser::add_default_value:iter:files: doesn't have default vals
[clap_builder::parser::parser]Parser::add_defaults:iter:output:
[clap_builder::parser::parser]Parser::add_default_value: doesn't have conditional defaults
[clap_builder::parser::parser]Parser::add_default_value:iter:output: doesn't have default vals
[clap_builder::parser::parser]Parser::add_defaults:iter:verbose:
[clap_builder::parser::parser]Parser::add_default_value: doesn't have conditional defaults
[clap_builder::parser::parser]Parser::add_default_value:iter:verbose: has default vals
[clap_builder::parser::parser]Parser::add_default_value:iter:verbose: was used
[clap_builder::parser::parser]Parser::add_defaults:iter:help:
[clap_builder::parser::parser]Parser::add_default_value: doesn't have conditional defaults
[clap_builder::parser::parser]Parser::add_default_value:iter:help: doesn't have default vals
[clap_builder::parser::validator]Validator::validate
[clap_builder::builder::command]Command::groups_for_arg: id="verbose"
[clap_builder::parser::validator]Conflicts::gather_direct_conflicts id="verbose", conflicts=[]
[clap_builder::parser::validator]Conflicts::gather_direct_conflicts id="Compress", conflicts=[]
[clap_builder::builder::command]Command::groups_for_arg: id="files"
[clap_builder::parser::validator]Conflicts::gather_direct_conflicts id="files", conflicts=[]
[clap_builder::builder::command]Command::groups_for_arg: id="output"
[clap_builder::parser::validator]Conflicts::gather_direct_conflicts id="output", conflicts=[]
[clap_builder::parser::validator]Validator::validate_conflicts
[clap_builder::parser::validator]Validator::validate_exclusive
[clap_builder::parser::validator]Validator::validate_exclusive:iter:"verbose"
[clap_builder::parser::validator]Validator::validate_exclusive:iter:"Compress"
[clap_builder::parser::validator]Validator::validate_exclusive:iter:"files"
[clap_builder::parser::validator]Validator::validate_exclusive:iter:"output"
[clap_builder::parser::validator]Validator::validate_conflicts::iter: id="verbose"
[clap_builder::parser::validator]Conflicts::gather_conflicts: arg="verbose"
[clap_builder::parser::validator]Conflicts::gather_conflicts: conflicts=[]
[clap_builder::parser::validator]Validator::validate_conflicts::iter: id="files"
[clap_builder::parser::validator]Conflicts::gather_conflicts: arg="files"
[clap_builder::parser::validator]Conflicts::gather_conflicts: conflicts=[]
[clap_builder::parser::validator]Validator::validate_conflicts::iter: id="output"
[clap_builder::parser::validator]Conflicts::gather_conflicts: arg="output"
[clap_builder::parser::validator]Conflicts::gather_conflicts: conflicts=[]
[clap_builder::parser::validator]Validator::validate_required: required=ChildGraph([Child { id: "files", children: [] }, Child { id: "output", children: [] }])
[clap_builder::parser::validator]Validator::gather_requires
[clap_builder::parser::validator]Validator::gather_requires:iter:"verbose"
[clap_builder::parser::validator]Validator::gather_requires:iter:"Compress"
[clap_builder::parser::validator]Validator::gather_requires:iter:"Compress":group
[clap_builder::parser::validator]Validator::gather_requires:iter:"files"
[clap_builder::parser::validator]Validator::gather_requires:iter:"output"
[clap_builder::parser::validator]Validator::validate_required: is_exclusive_present=false
[clap_builder::parser::parser]Parser::add_env
[clap_builder::parser::parser]Parser::add_env: Checking arg `--help`
[clap_builder::parser::parser]Parser::add_defaults
[clap_builder::parser::parser]Parser::add_defaults:iter:help:
[clap_builder::parser::parser]Parser::add_default_value: doesn't have conditional defaults
[clap_builder::parser::parser]Parser::add_default_value:iter:help: doesn't have default vals
[clap_builder::parser::validator]Validator::validate
[clap_builder::parser::validator]Validator::validate_conflicts
[clap_builder::parser::validator]Validator::validate_exclusive
[clap_builder::parser::validator]Validator::validate_required: required=ChildGraph([])
[clap_builder::parser::validator]Validator::gather_requires
[clap_builder::parser::validator]Validator::validate_required: is_exclusive_present=false
[clap_builder::parser::arg_matcher]ArgMatcher::get_global_values: global_arg_vec=[]

</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: Updating dependencies
Projects
None yet
Development

No branches or pull requests

1 participant