1418 lines
281 KiB
HTML
1418 lines
281 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Build a command-line interface."><meta name="keywords" content="rust, rustlang, rust-lang, Command"><title>Command in clap - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../dark.css" disabled><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../main.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../favicon.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../clap/index.html"><div class="logo-container"><img src="https://raw.githubusercontent.com/clap-rs/clap/master/assets/clap.png" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../clap/index.html"><div class="logo-container">
|
||
<img src="https://raw.githubusercontent.com/clap-rs/clap/master/assets/clap.png" alt="logo"></div></a><h2 class="location"><a href="#">Command</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><ul><li><a href="#method.about">about</a></li><li><a href="#method.after_help">after_help</a></li><li><a href="#method.after_long_help">after_long_help</a></li><li><a href="#method.alias">alias</a></li><li><a href="#method.aliases">aliases</a></li><li><a href="#method.allow_external_subcommands">allow_external_subcommands</a></li><li><a href="#method.allow_missing_positional">allow_missing_positional</a></li><li><a href="#method.arg">arg</a></li><li><a href="#method.arg_required_else_help">arg_required_else_help</a></li><li><a href="#method.args">args</a></li><li><a href="#method.args_conflicts_with_subcommands">args_conflicts_with_subcommands</a></li><li><a href="#method.args_override_self">args_override_self</a></li><li><a href="#method.author">author</a></li><li><a href="#method.before_help">before_help</a></li><li><a href="#method.before_long_help">before_long_help</a></li><li><a href="#method.bin_name">bin_name</a></li><li><a href="#method.build">build</a></li><li><a href="#method.color">color</a></li><li><a href="#method.debug_assert">debug_assert</a></li><li><a href="#method.disable_colored_help">disable_colored_help</a></li><li><a href="#method.disable_help_flag">disable_help_flag</a></li><li><a href="#method.disable_help_subcommand">disable_help_subcommand</a></li><li><a href="#method.disable_version_flag">disable_version_flag</a></li><li><a href="#method.display_name">display_name</a></li><li><a href="#method.display_order">display_order</a></li><li><a href="#method.dont_delimit_trailing_values">dont_delimit_trailing_values</a></li><li><a href="#method.error">error</a></li><li><a href="#method.external_subcommand_value_parser">external_subcommand_value_parser</a></li><li><a href="#method.find_subcommand">find_subcommand</a></li><li><a href="#method.find_subcommand_mut">find_subcommand_mut</a></li><li><a href="#method.get_about">get_about</a></li><li><a href="#method.get_after_help">get_after_help</a></li><li><a href="#method.get_after_long_help">get_after_long_help</a></li><li><a href="#method.get_all_aliases">get_all_aliases</a></li><li><a href="#method.get_all_long_flag_aliases">get_all_long_flag_aliases</a></li><li><a href="#method.get_all_short_flag_aliases">get_all_short_flag_aliases</a></li><li><a href="#method.get_arg_conflicts_with">get_arg_conflicts_with</a></li><li><a href="#method.get_arguments">get_arguments</a></li><li><a href="#method.get_author">get_author</a></li><li><a href="#method.get_before_help">get_before_help</a></li><li><a href="#method.get_before_long_help">get_before_long_help</a></li><li><a href="#method.get_bin_name">get_bin_name</a></li><li><a href="#method.get_color">get_color</a></li><li><a href="#method.get_display_name">get_display_name</a></li><li><a href="#method.get_external_subcommand_value_parser">get_external_subcommand_value_parser</a></li><li><a href="#method.get_groups">get_groups</a></li><li><a href="#method.get_long_about">get_long_about</a></li><li><a href="#method.get_long_flag">get_long_flag</a></li><li><a href="#method.get_long_version">get_long_version</a></li><li><a href="#method.get_matches">get_matches</a></li><li><a href="#method.get_matches_from">get_matches_from</a></li><li><a href="#method.get_matches_mut">get_matches_mut</a></li><li><a href="#method.get_name">get_name</a></li><li><a href="#method.get_next_help_heading">get_next_help_heading</a></li><li><a href="#method.get_opts">get_opts</a></li><li><a href="#method.get_positionals">get_positionals</a></li><li><a href="#method.get_short_flag">get_short_flag</a></li><li><a href="#method.get_subcommand_help_heading">get_subcommand_help_heading</a></li><li><a href="#method.get_subcommand_value_name">get_subcommand_value_name</a></li><li><a href="#method.get_subcommands">get_subcommands</a></li><li><a href="#method.get_subcommands_mut">get_subcommands_mut</a></li><li><a href="#method.get_version">get_version</a></li><li><a href="#method.get_visible_aliases">get_visible_aliases</a></li><li><a href="#method.get_visible_long_flag_aliases">get_visible_long_flag_aliases</a></li><li><a href="#method.get_visible_short_flag_aliases">get_visible_short_flag_aliases</a></li><li><a href="#method.group">group</a></li><li><a href="#method.groups">groups</a></li><li><a href="#method.has_subcommands">has_subcommands</a></li><li><a href="#method.help_expected">help_expected</a></li><li><a href="#method.help_template">help_template</a></li><li><a href="#method.hide">hide</a></li><li><a href="#method.hide_possible_values">hide_possible_values</a></li><li><a href="#method.ignore_errors">ignore_errors</a></li><li><a href="#method.infer_long_args">infer_long_args</a></li><li><a href="#method.infer_subcommands">infer_subcommands</a></li><li><a href="#method.is_allow_external_subcommands_set">is_allow_external_subcommands_set</a></li><li><a href="#method.is_allow_missing_positional_set">is_allow_missing_positional_set</a></li><li><a href="#method.is_arg_required_else_help_set">is_arg_required_else_help_set</a></li><li><a href="#method.is_args_conflicts_with_subcommands_set">is_args_conflicts_with_subcommands_set</a></li><li><a href="#method.is_disable_colored_help_set">is_disable_colored_help_set</a></li><li><a href="#method.is_disable_help_flag_set">is_disable_help_flag_set</a></li><li><a href="#method.is_disable_help_subcommand_set">is_disable_help_subcommand_set</a></li><li><a href="#method.is_disable_version_flag_set">is_disable_version_flag_set</a></li><li><a href="#method.is_dont_delimit_trailing_values_set">is_dont_delimit_trailing_values_set</a></li><li><a href="#method.is_hide_set">is_hide_set</a></li><li><a href="#method.is_multicall_set">is_multicall_set</a></li><li><a href="#method.is_next_line_help_set">is_next_line_help_set</a></li><li><a href="#method.is_no_binary_name_set">is_no_binary_name_set</a></li><li><a href="#method.is_propagate_version_set">is_propagate_version_set</a></li><li><a href="#method.is_subcommand_negates_reqs_set">is_subcommand_negates_reqs_set</a></li><li><a href="#method.is_subcommand_precedence_over_arg_set">is_subcommand_precedence_over_arg_set</a></li><li><a href="#method.is_subcommand_required_set">is_subcommand_required_set</a></li><li><a href="#method.long_about">long_about</a></li><li><a href="#method.long_flag">long_flag</a></li><li><a href="#method.long_flag_alias">long_flag_alias</a></li><li><a href="#method.long_flag_aliases">long_flag_aliases</a></li><li><a href="#method.long_version">long_version</a></li><li><a href="#method.max_term_width">max_term_width</a></li><li><a href="#method.multicall">multicall</a></li><li><a href="#method.mut_arg">mut_arg</a></li><li><a href="#method.mut_subcommand">mut_subcommand</a></li><li><a href="#method.name">name</a></li><li><a href="#method.new">new</a></li><li><a href="#method.next_display_order">next_display_order</a></li><li><a href="#method.next_help_heading">next_help_heading</a></li><li><a href="#method.next_line_help">next_line_help</a></li><li><a href="#method.no_binary_name">no_binary_name</a></li><li><a href="#method.override_help">override_help</a></li><li><a href="#method.override_usage">override_usage</a></li><li><a href="#method.print_help">print_help</a></li><li><a href="#method.print_long_help">print_long_help</a></li><li><a href="#method.propagate_version">propagate_version</a></li><li><a href="#method.render_help">render_help</a></li><li><a href="#method.render_long_help">render_long_help</a></li><li><a href="#method.render_long_version">render_long_version</a></li><li><a href="#method.render_usage">render_usage</a></li><li><a href="#method.render_version">render_version</a></li><li><a href="#method.set_bin_name">set_bin_name</a></li><li><a href="#method.short_flag">short_flag</a></li><li><a href="#method.short_flag_alias">short_flag_alias</a></li><li><a href="#method.short_flag_aliases">short_flag_aliases</a></li><li><a href="#method.subcommand">subcommand</a></li><li><a href="#method.subcommand_help_heading">subcommand_help_heading</a></li><li><a href="#method.subcommand_negates_reqs">subcommand_negates_reqs</a></li><li><a href="#method.subcommand_precedence_over_arg">subcommand_precedence_over_arg</a></li><li><a href="#method.subcommand_required">subcommand_required</a></li><li><a href="#method.subcommand_value_name">subcommand_value_name</a></li><li><a href="#method.subcommands">subcommands</a></li><li><a href="#method.term_width">term_width</a></li><li><a href="#method.try_get_matches">try_get_matches</a></li><li><a href="#method.try_get_matches_from">try_get_matches_from</a></li><li><a href="#method.try_get_matches_from_mut">try_get_matches_from_mut</a></li><li><a href="#method.version">version</a></li><li><a href="#method.visible_alias">visible_alias</a></li><li><a href="#method.visible_aliases">visible_aliases</a></li><li><a href="#method.visible_long_flag_alias">visible_long_flag_alias</a></li><li><a href="#method.visible_long_flag_aliases">visible_long_flag_aliases</a></li><li><a href="#method.visible_short_flag_alias">visible_short_flag_alias</a></li><li><a href="#method.visible_short_flag_aliases">visible_short_flag_aliases</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><ul><li><a href="#impl-Clone-for-Command">Clone</a></li><li><a href="#impl-Debug-for-Command">Debug</a></li><li><a href="#impl-Default-for-Command">Default</a></li><li><a href="#impl-Display-for-Command">Display</a></li><li><a href="#impl-From%3C%26Command%3E-for-Command">From<&Command></a></li><li><a href="#impl-Index%3C%26Id%3E-for-Command">Index<&Id></a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul><li><a href="#impl-RefUnwindSafe-for-Command">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-Command">Send</a></li><li><a href="#impl-Sync-for-Command">Sync</a></li><li><a href="#impl-Unpin-for-Command">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Command">!UnwindSafe</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><ul><li><a href="#impl-Any-for-Command">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Command">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Command">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Command">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Command">Into<U></a></li><li><a href="#impl-ToOwned-for-Command">ToOwned</a></li><li><a href="#impl-ToString-for-Command">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Command">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Command">TryInto<U></a></li></ul></div></section><h2 class="location"><a href="index.html">In clap</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../clap/index.html">
|
||
<img src="https://raw.githubusercontent.com/clap-rs/clap/master/assets/clap.png" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Struct <a href="index.html">clap</a>::<wbr><a class="struct" href="#">Command</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../src/clap/builder/command.rs.html#71-109">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust struct"><code>pub struct Command { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Build a command-line interface.</p>
|
||
<p>This includes defining arguments, subcommands, parser behavior, and help output.
|
||
Once all configuration is complete,
|
||
the <a href="builder/struct.Command.html#method.get_matches"><code>Command::get_matches</code></a> family of methods starts the runtime-parsing
|
||
process. These methods then return information about the user supplied
|
||
arguments (or lack thereof).</p>
|
||
<p>When deriving a <a href="trait.Parser.html" title="crate::Parser"><code>Parser</code></a>, you can use
|
||
<a href="trait.CommandFactory.html#tymethod.command" title="crate::CommandFactory::command"><code>CommandFactory::command</code></a> to access the
|
||
<code>Command</code>.</p>
|
||
<ul>
|
||
<li><a href="builder/struct.Command.html#basic-api" title="crate::Command">Basic API</a></li>
|
||
<li><a href="builder/struct.Command.html#application-wide-settings" title="crate::Command">Application-wide Settings</a></li>
|
||
<li><a href="builder/struct.Command.html#command-specific-settings" title="crate::Command">Command-specific Settings</a></li>
|
||
<li><a href="builder/struct.Command.html#subcommand-specific-settings" title="crate::Command">Subcommand-specific Settings</a></li>
|
||
<li><a href="builder/struct.Command.html#reflection" title="crate::Command">Reflection</a></li>
|
||
</ul>
|
||
<h2 id="examples"><a href="#examples">Examples</a></h2>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"My Program"</span>)
|
||
.<span class="ident">author</span>(<span class="string">"Me, me@mail.com"</span>)
|
||
.<span class="ident">version</span>(<span class="string">"1.0.2"</span>)
|
||
.<span class="ident">about</span>(<span class="string">"Explains in brief what the program does"</span>)
|
||
.<span class="ident">arg</span>(
|
||
<span class="ident">Arg::new</span>(<span class="string">"in_file"</span>)
|
||
)
|
||
.<span class="ident">after_help</span>(<span class="string">"Longer explanation to appear after the options when \
|
||
displaying the help information from --help or -h"</span>)
|
||
.<span class="ident">get_matches</span>();
|
||
|
||
<span class="comment">// Your program logic starts here...</span></code></pre></div>
|
||
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#112-913">source</a></span><a href="#impl-Command" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="docblock"><h4 id="basic-api"><a href="#basic-api">Basic API</a></h4></div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#128-141">source</a></span><h4 class="code-header">pub fn <a href="#method.new" class="fnname">new</a>(name: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Creates a new instance of an <code>Command</code>.</p>
|
||
<p>It is common, but not required, to use binary name as the <code>name</code>. This
|
||
name will only be displayed to the user when they request to print
|
||
version or help and usage information.</p>
|
||
<p>See also <a href="macro.command.html"><code>command!</code></a> and <a href="crate::crate_name!"><code>crate_name!</code></a>.</p>
|
||
<h5 id="examples-1"><a href="#examples-1">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"My Program"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.arg" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#165-169">source</a></span><h4 class="code-header">pub fn <a href="#method.arg" class="fnname">arg</a>(self, a: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.Arg.html" title="struct clap::builder::Arg">Arg</a>>) -> Self</h4></section></summary><div class="docblock"><p>Adds an <a href="builder/struct.Arg.html">argument</a> to the list of valid possibilities.</p>
|
||
<h5 id="examples-2"><a href="#examples-2">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
<span class="comment">// Adding a single "flag" argument with a short and help text, using Arg::new()</span>
|
||
.<span class="ident">arg</span>(
|
||
<span class="ident">Arg::new</span>(<span class="string">"debug"</span>)
|
||
.<span class="ident">short</span>(<span class="string">'d'</span>)
|
||
.<span class="ident">help</span>(<span class="string">"turns on debugging mode"</span>)
|
||
)
|
||
<span class="comment">// Adding a single "option" argument with a short, a long, and help text using the less</span>
|
||
<span class="comment">// verbose Arg::from()</span>
|
||
.<span class="ident">arg</span>(
|
||
<span class="macro">arg!</span>(<span class="op">-</span><span class="ident">c</span> <span class="op">-</span><span class="op">-</span><span class="ident">config</span> <span class="op"><</span><span class="ident">CONFIG</span><span class="op">></span> <span class="string">"Optionally sets a config file to use"</span>)
|
||
)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.args" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#200-205">source</a></span><h4 class="code-header">pub fn <a href="#method.args" class="fnname">args</a>(self, args: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.Arg.html" title="struct clap::builder::Arg">Arg</a>>>) -> Self</h4></section></summary><div class="docblock"><p>Adds multiple <a href="builder/struct.Arg.html">arguments</a> to the list of valid possibilities.</p>
|
||
<h5 id="examples-3"><a href="#examples-3">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">args</span>([
|
||
<span class="macro">arg!</span>(<span class="string">"[debug] -d 'turns on debugging info'"</span>),
|
||
<span class="ident">Arg::new</span>(<span class="string">"input"</span>).<span class="ident">help</span>(<span class="string">"the input file to use"</span>)
|
||
])</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mut_arg" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#238-250">source</a></span><h4 class="code-header">pub fn <a href="#method.mut_arg" class="fnname">mut_arg</a><F>(self, arg_id: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>>, f: F) -> Self <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="struct" href="builder/struct.Arg.html" title="struct clap::builder::Arg">Arg</a>) -> <a class="struct" href="builder/struct.Arg.html" title="struct clap::builder::Arg">Arg</a>, </span></h4></section></summary><div class="docblock"><p>Allows one to mutate an <a href="builder/struct.Arg.html" title="Arg"><code>Arg</code></a> after it’s been added to a <a href="builder/struct.Command.html" title="Command"><code>Command</code></a>.</p>
|
||
<p>This can be useful for modifying the auto-generated help or version arguments.</p>
|
||
<h5 id="panics"><a href="#panics">Panics</a></h5>
|
||
<p>If the argument is undefined</p>
|
||
<h5 id="examples-4"><a href="#examples-4">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"foo"</span>)
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"bar"</span>)
|
||
.<span class="ident">short</span>(<span class="string">'b'</span>)
|
||
.<span class="ident">action</span>(<span class="ident">ArgAction::SetTrue</span>))
|
||
.<span class="ident">mut_arg</span>(<span class="string">"bar"</span>, <span class="op">|</span><span class="ident">a</span><span class="op">|</span> <span class="ident">a</span>.<span class="ident">short</span>(<span class="string">'B'</span>));
|
||
|
||
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">try_get_matches_from_mut</span>(<span class="macro">vec!</span>[<span class="string">"foo"</span>, <span class="string">"-b"</span>]);
|
||
|
||
<span class="comment">// Since we changed `bar`'s short to "B" this should err as there</span>
|
||
<span class="comment">// is no `-b` anymore, only `-B`</span>
|
||
|
||
<span class="macro">assert!</span>(<span class="ident">res</span>.<span class="ident">is_err</span>());
|
||
|
||
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">try_get_matches_from_mut</span>(<span class="macro">vec!</span>[<span class="string">"foo"</span>, <span class="string">"-B"</span>]);
|
||
<span class="macro">assert!</span>(<span class="ident">res</span>.<span class="ident">is_ok</span>());</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mut_subcommand" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#280-295">source</a></span><h4 class="code-header">pub fn <a href="#method.mut_subcommand" class="fnname">mut_subcommand</a><F>(self, name: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>>, f: F) -> Self <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(Self) -> Self, </span></h4></section></summary><div class="docblock"><p>Allows one to mutate a <a href="builder/struct.Command.html" title="Command"><code>Command</code></a> after it’s been added as a subcommand.</p>
|
||
<p>This can be useful for modifying auto-generated arguments of nested subcommands with
|
||
<a href="builder/struct.Command.html#method.mut_arg" title="Command::mut_arg"><code>Command::mut_arg</code></a>.</p>
|
||
<h5 id="panics-1"><a href="#panics-1">Panics</a></h5>
|
||
<p>If the subcommand is undefined</p>
|
||
<h5 id="examples-5"><a href="#examples-5">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"foo"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"bar"</span>))
|
||
.<span class="ident">mut_subcommand</span>(<span class="string">"bar"</span>, <span class="op">|</span><span class="ident">subcmd</span><span class="op">|</span> <span class="ident">subcmd</span>.<span class="ident">disable_help_flag</span>(<span class="bool-val">true</span>));
|
||
|
||
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">try_get_matches_from_mut</span>(<span class="macro">vec!</span>[<span class="string">"foo"</span>, <span class="string">"bar"</span>, <span class="string">"--help"</span>]);
|
||
|
||
<span class="comment">// Since we disabled the help flag on the "bar" subcommand, this should err.</span>
|
||
|
||
<span class="macro">assert!</span>(<span class="ident">res</span>.<span class="ident">is_err</span>());
|
||
|
||
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">try_get_matches_from_mut</span>(<span class="macro">vec!</span>[<span class="string">"foo"</span>, <span class="string">"bar"</span>]);
|
||
<span class="macro">assert!</span>(<span class="ident">res</span>.<span class="ident">is_ok</span>());</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.group" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#330-333">source</a></span><h4 class="code-header">pub fn <a href="#method.group" class="fnname">group</a>(self, group: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.ArgGroup.html" title="struct clap::builder::ArgGroup">ArgGroup</a>>) -> Self</h4></section></summary><div class="docblock"><p>Adds an <a href="builder/struct.ArgGroup.html" title="ArgGroup"><code>ArgGroup</code></a> to the application.</p>
|
||
<p><a href="builder/struct.ArgGroup.html" title="ArgGroup"><code>ArgGroup</code></a>s are a family of related arguments.
|
||
By placing them in a logical group, you can build easier requirement and exclusion rules.</p>
|
||
<p>Example use cases:</p>
|
||
<ul>
|
||
<li>Make an entire <a href="builder/struct.ArgGroup.html" title="ArgGroup"><code>ArgGroup</code></a> required, meaning that one (and <em>only</em>
|
||
one) argument from that group must be present at runtime.</li>
|
||
<li>Name an <a href="builder/struct.ArgGroup.html" title="ArgGroup"><code>ArgGroup</code></a> as a conflict to another argument.
|
||
Meaning any of the arguments that belong to that group will cause a failure if present with
|
||
the conflicting argument.</li>
|
||
<li>Ensure exclusion between arguments.</li>
|
||
<li>Extract a value from a group instead of determining exactly which argument was used.</li>
|
||
</ul>
|
||
<h5 id="examples-6"><a href="#examples-6">Examples</a></h5>
|
||
<p>The following example demonstrates using an <a href="builder/struct.ArgGroup.html" title="ArgGroup"><code>ArgGroup</code></a> to ensure that one, and only one,
|
||
of the arguments from the specified group is present at runtime.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"cmd"</span>)
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"--set-ver [ver] 'set the version manually'"</span>))
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"--major 'auto increase major'"</span>))
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"--minor 'auto increase minor'"</span>))
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"--patch 'auto increase patch'"</span>))
|
||
.<span class="ident">group</span>(<span class="ident">ArgGroup::new</span>(<span class="string">"vers"</span>)
|
||
.<span class="ident">args</span>([<span class="string">"set-ver"</span>, <span class="string">"major"</span>, <span class="string">"minor"</span>,<span class="string">"patch"</span>])
|
||
.<span class="ident">required</span>(<span class="bool-val">true</span>))</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.groups" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#358-363">source</a></span><h4 class="code-header">pub fn <a href="#method.groups" class="fnname">groups</a>(<br> self,<br> groups: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.ArgGroup.html" title="struct clap::builder::ArgGroup">ArgGroup</a>>><br>) -> Self</h4></section></summary><div class="docblock"><p>Adds multiple <a href="builder/struct.ArgGroup.html" title="ArgGroup"><code>ArgGroup</code></a>s to the <a href="builder/struct.Command.html" title="Command"><code>Command</code></a> at once.</p>
|
||
<h5 id="examples-7"><a href="#examples-7">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"cmd"</span>)
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"--set-ver [ver] 'set the version manually'"</span>))
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"--major 'auto increase major'"</span>))
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"--minor 'auto increase minor'"</span>))
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"--patch 'auto increase patch'"</span>))
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"-c [FILE] 'a config file'"</span>))
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"-i [IFACE] 'an interface'"</span>))
|
||
.<span class="ident">groups</span>([
|
||
<span class="ident">ArgGroup::new</span>(<span class="string">"vers"</span>)
|
||
.<span class="ident">args</span>([<span class="string">"set-ver"</span>, <span class="string">"major"</span>, <span class="string">"minor"</span>,<span class="string">"patch"</span>])
|
||
.<span class="ident">required</span>(<span class="bool-val">true</span>),
|
||
<span class="ident">ArgGroup::new</span>(<span class="string">"input"</span>)
|
||
.<span class="ident">args</span>([<span class="string">"c"</span>, <span class="string">"i"</span>])
|
||
])</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.subcommand" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#387-390">source</a></span><h4 class="code-header">pub fn <a href="#method.subcommand" class="fnname">subcommand</a>(self, subcmd: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a>>) -> Self</h4></section></summary><div class="docblock"><p>Adds a subcommand to the list of valid possibilities.</p>
|
||
<p>Subcommands are effectively sub-<a href="builder/struct.Command.html" title="Command"><code>Command</code></a>s, because they can contain their own arguments,
|
||
subcommands, version, usage, etc. They also function just like <a href="builder/struct.Command.html" title="Command"><code>Command</code></a>s, in that they get
|
||
their own auto generated help, version, and usage.</p>
|
||
<p>A subcommand’s <a href="builder/struct.Command.html#method.name" title="Command::name"><code>Command::name</code></a> will be used for:</p>
|
||
<ul>
|
||
<li>The argument the user passes in</li>
|
||
<li>Programmatically looking up the subcommand</li>
|
||
</ul>
|
||
<h5 id="examples-8"><a href="#examples-8">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"config"</span>)
|
||
.<span class="ident">about</span>(<span class="string">"Controls configuration features"</span>)
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="string">"<config> 'Required configuration file to use'"</span>)))</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.subcommands" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#417-422">source</a></span><h4 class="code-header">pub fn <a href="#method.subcommands" class="fnname">subcommands</a>(<br> self,<br> subcmds: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><Self>><br>) -> Self</h4></section></summary><div class="docblock"><p>Adds multiple subcommands to the list of valid possibilities.</p>
|
||
<h5 id="examples-9"><a href="#examples-9">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>.<span class="ident">subcommands</span>( [
|
||
<span class="ident">Command::new</span>(<span class="string">"config"</span>).<span class="ident">about</span>(<span class="string">"Controls configuration functionality"</span>)
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"config_file"</span>)),
|
||
<span class="ident">Command::new</span>(<span class="string">"debug"</span>).<span class="ident">about</span>(<span class="string">"Controls debug functionality"</span>)])</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.debug_assert" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#455-457">source</a></span><h4 class="code-header">pub fn <a href="#method.debug_assert" class="fnname">debug_assert</a>(self)</h4></section></summary><div class="docblock"><p>Catch problems earlier in the development cycle.</p>
|
||
<p>Most error states are handled as asserts under the assumption they are programming mistake
|
||
and not something to handle at runtime. Rather than relying on tests (manual or automated)
|
||
that exhaustively test your CLI to ensure the asserts are evaluated, this will run those
|
||
asserts in a way convenient for running as a test.</p>
|
||
<p><strong>Note::</strong> This will not help with asserts in <a href="parser/struct.ArgMatches.html" title="ArgMatches"><code>ArgMatches</code></a>, those will need exhaustive
|
||
testing of your CLI.</p>
|
||
<h5 id="examples-10"><a href="#examples-10">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">fn</span> <span class="ident">cmd</span>() -> <span class="ident">Command</span> {
|
||
<span class="ident">Command::new</span>(<span class="string">"foo"</span>)
|
||
.<span class="ident">arg</span>(
|
||
<span class="ident">Arg::new</span>(<span class="string">"bar"</span>).<span class="ident">short</span>(<span class="string">'b'</span>).<span class="ident">action</span>(<span class="ident">ArgAction::SetTrue</span>)
|
||
)
|
||
}
|
||
|
||
<span class="attribute">#[<span class="ident">test</span>]</span>
|
||
<span class="kw">fn</span> <span class="ident">verify_app</span>() {
|
||
<span class="ident">cmd</span>().<span class="ident">debug_assert</span>();
|
||
}
|
||
|
||
<span class="kw">fn</span> <span class="ident">main</span>() {
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">cmd</span>().<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"foo"</span>, <span class="string">"-b"</span>]);
|
||
<span class="macro">println!</span>(<span class="string">"{}"</span>, <span class="kw-2">*</span><span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">bool</span><span class="op">></span>(<span class="string">"bar"</span>).<span class="ident">expect</span>(<span class="string">"defaulted by clap"</span>));
|
||
}</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.error" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#468-470">source</a></span><h4 class="code-header">pub fn <a href="#method.error" class="fnname">error</a>(&mut self, kind: <a class="enum" href="error/enum.ErrorKind.html" title="enum clap::error::ErrorKind">ErrorKind</a>, message: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>) -> <a class="type" href="type.Error.html" title="type clap::Error">Error</a></h4></section></summary><div class="docblock"><p>Custom error message for post-parsing validation</p>
|
||
<h5 id="examples-11"><a href="#examples-11">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>);
|
||
<span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">error</span>(<span class="ident">ErrorKind::InvalidValue</span>, <span class="string">"Some failure case"</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_matches" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#489-491">source</a></span><h4 class="code-header">pub fn <a href="#method.get_matches" class="fnname">get_matches</a>(self) -> <a class="struct" href="parser/struct.ArgMatches.html" title="struct clap::parser::ArgMatches">ArgMatches</a></h4></section></summary><div class="docblock"><p>Parse <a href="https://doc.rust-lang.org/1.64.0/std/env/fn.args_os.html"><code>env::args_os</code></a>, exiting on failure.</p>
|
||
<h5 id="panics-2"><a href="#panics-2">Panics</a></h5>
|
||
<p>If contradictory arguments or settings exist.</p>
|
||
<h5 id="examples-12"><a href="#examples-12">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
<span class="comment">// Args and options go here...</span>
|
||
.<span class="ident">get_matches</span>();</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_matches_mut" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#512-515">source</a></span><h4 class="code-header">pub fn <a href="#method.get_matches_mut" class="fnname">get_matches_mut</a>(&mut self) -> <a class="struct" href="parser/struct.ArgMatches.html" title="struct clap::parser::ArgMatches">ArgMatches</a></h4></section></summary><div class="docblock"><p>Parse <a href="https://doc.rust-lang.org/1.64.0/std/env/fn.args_os.html"><code>env::args_os</code></a>, exiting on failure.</p>
|
||
<p>Like <a href="builder/struct.Command.html#method.get_matches"><code>Command::get_matches</code></a> but doesn’t consume the <code>Command</code>.</p>
|
||
<h5 id="panics-3"><a href="#panics-3">Panics</a></h5>
|
||
<p>If contradictory arguments or settings exist.</p>
|
||
<h5 id="examples-13"><a href="#examples-13">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
<span class="comment">// Args and options go here...</span>
|
||
;
|
||
<span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">get_matches_mut</span>();</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_get_matches" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#546-549">source</a></span><h4 class="code-header">pub fn <a href="#method.try_get_matches" class="fnname">try_get_matches</a>(self) -> <a class="type" href="error/type.Result.html" title="type clap::error::Result">ClapResult</a><<a class="struct" href="parser/struct.ArgMatches.html" title="struct clap::parser::ArgMatches">ArgMatches</a>></h4></section></summary><div class="docblock"><p>Parse <a href="https://doc.rust-lang.org/1.64.0/std/env/fn.args_os.html"><code>env::args_os</code></a>, returning a <a href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"><code>clap::Result</code></a> on failure.</p>
|
||
<p><strong>NOTE:</strong> This method WILL NOT exit when <code>--help</code> or <code>--version</code> (or short versions) are
|
||
used. It will return a <a href="type.Error.html"><code>clap::Error</code></a>, where the <a href="type.Error.html"><code>kind</code></a> is a
|
||
<a href="error/enum.ErrorKind.html#variant.DisplayHelp"><code>ErrorKind::DisplayHelp</code></a> or <a href="error/enum.ErrorKind.html#variant.DisplayVersion"><code>ErrorKind::DisplayVersion</code></a> respectively. You must call
|
||
<a href="error/struct.Error.html#method.exit"><code>Error::exit</code></a> or perform a <a href="https://doc.rust-lang.org/1.64.0/std/process/fn.exit.html"><code>std::process::exit</code></a>.</p>
|
||
<h5 id="panics-4"><a href="#panics-4">Panics</a></h5>
|
||
<p>If contradictory arguments or settings exist.</p>
|
||
<h5 id="examples-14"><a href="#examples-14">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
<span class="comment">// Args and options go here...</span>
|
||
.<span class="ident">try_get_matches</span>()
|
||
.<span class="ident">unwrap_or_else</span>(<span class="op">|</span><span class="ident">e</span><span class="op">|</span> <span class="ident">e</span>.<span class="ident">exit</span>());</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_matches_from" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#573-582">source</a></span><h4 class="code-header">pub fn <a href="#method.get_matches_from" class="fnname">get_matches_from</a><I, T>(self, itr: I) -> <a class="struct" href="parser/struct.ArgMatches.html" title="struct clap::parser::ArgMatches">ArgMatches</a> <span class="where fmt-newline">where<br> I: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = T>,<br> T: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="https://doc.rust-lang.org/1.64.0/std/ffi/os_str/struct.OsString.html" title="struct std::ffi::os_str::OsString">OsString</a>> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, </span></h4></section></summary><div class="docblock"><p>Parse the specified arguments, exiting on failure.</p>
|
||
<p><strong>NOTE:</strong> The first argument will be parsed as the binary name unless
|
||
<a href="builder/struct.Command.html#method.no_binary_name" title="Command::no_binary_name"><code>Command::no_binary_name</code></a> is used.</p>
|
||
<h5 id="panics-5"><a href="#panics-5">Panics</a></h5>
|
||
<p>If contradictory arguments or settings exist.</p>
|
||
<h5 id="examples-15"><a href="#examples-15">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">arg_vec</span> <span class="op">=</span> <span class="macro">vec!</span>[<span class="string">"my_prog"</span>, <span class="string">"some"</span>, <span class="string">"args"</span>, <span class="string">"to"</span>, <span class="string">"parse"</span>];
|
||
|
||
<span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
<span class="comment">// Args and options go here...</span>
|
||
.<span class="ident">get_matches_from</span>(<span class="ident">arg_vec</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_get_matches_from" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#619-625">source</a></span><h4 class="code-header">pub fn <a href="#method.try_get_matches_from" class="fnname">try_get_matches_from</a><I, T>(self, itr: I) -> <a class="type" href="error/type.Result.html" title="type clap::error::Result">ClapResult</a><<a class="struct" href="parser/struct.ArgMatches.html" title="struct clap::parser::ArgMatches">ArgMatches</a>> <span class="where fmt-newline">where<br> I: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = T>,<br> T: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="https://doc.rust-lang.org/1.64.0/std/ffi/os_str/struct.OsString.html" title="struct std::ffi::os_str::OsString">OsString</a>> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, </span></h4></section></summary><div class="docblock"><p>Parse the specified arguments, returning a <a href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"><code>clap::Result</code></a> on failure.</p>
|
||
<p><strong>NOTE:</strong> This method WILL NOT exit when <code>--help</code> or <code>--version</code> (or short versions) are
|
||
used. It will return a <a href="type.Error.html"><code>clap::Error</code></a>, where the <a href="type.Error.html"><code>kind</code></a> is a <a href="error/enum.ErrorKind.html#variant.DisplayHelp"><code>ErrorKind::DisplayHelp</code></a>
|
||
or <a href="error/enum.ErrorKind.html#variant.DisplayVersion"><code>ErrorKind::DisplayVersion</code></a> respectively. You must call <a href="error/struct.Error.html#method.exit"><code>Error::exit</code></a> or
|
||
perform a <a href="https://doc.rust-lang.org/1.64.0/std/process/fn.exit.html"><code>std::process::exit</code></a> yourself.</p>
|
||
<p><strong>NOTE:</strong> The first argument will be parsed as the binary name unless
|
||
<a href="builder/struct.Command.html#method.no_binary_name" title="Command::no_binary_name"><code>Command::no_binary_name</code></a> is used.</p>
|
||
<h5 id="panics-6"><a href="#panics-6">Panics</a></h5>
|
||
<p>If contradictory arguments or settings exist.</p>
|
||
<h5 id="examples-16"><a href="#examples-16">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">arg_vec</span> <span class="op">=</span> <span class="macro">vec!</span>[<span class="string">"my_prog"</span>, <span class="string">"some"</span>, <span class="string">"args"</span>, <span class="string">"to"</span>, <span class="string">"parse"</span>];
|
||
|
||
<span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
<span class="comment">// Args and options go here...</span>
|
||
.<span class="ident">try_get_matches_from</span>(<span class="ident">arg_vec</span>)
|
||
.<span class="ident">unwrap_or_else</span>(<span class="op">|</span><span class="ident">e</span><span class="op">|</span> <span class="ident">e</span>.<span class="ident">exit</span>());</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_get_matches_from_mut" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#658-709">source</a></span><h4 class="code-header">pub fn <a href="#method.try_get_matches_from_mut" class="fnname">try_get_matches_from_mut</a><I, T>(<br> &mut self,<br> itr: I<br>) -> <a class="type" href="error/type.Result.html" title="type clap::error::Result">ClapResult</a><<a class="struct" href="parser/struct.ArgMatches.html" title="struct clap::parser::ArgMatches">ArgMatches</a>> <span class="where fmt-newline">where<br> I: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = T>,<br> T: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="https://doc.rust-lang.org/1.64.0/std/ffi/os_str/struct.OsString.html" title="struct std::ffi::os_str::OsString">OsString</a>> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, </span></h4></section></summary><div class="docblock"><p>Parse the specified arguments, returning a <a href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"><code>clap::Result</code></a> on failure.</p>
|
||
<p>Like <a href="builder/struct.Command.html#method.try_get_matches_from"><code>Command::try_get_matches_from</code></a> but doesn’t consume the <code>Command</code>.</p>
|
||
<p><strong>NOTE:</strong> This method WILL NOT exit when <code>--help</code> or <code>--version</code> (or short versions) are
|
||
used. It will return a <a href="type.Error.html"><code>clap::Error</code></a>, where the <a href="type.Error.html"><code>kind</code></a> is a <a href="error/enum.ErrorKind.html#variant.DisplayHelp" title="ErrorKind::DisplayHelp"><code>ErrorKind::DisplayHelp</code></a>
|
||
or <a href="error/enum.ErrorKind.html#variant.DisplayVersion" title="ErrorKind::DisplayVersion"><code>ErrorKind::DisplayVersion</code></a> respectively. You must call <a href="error/struct.Error.html#method.exit" title="Error::exit"><code>Error::exit</code></a> or
|
||
perform a <a href="https://doc.rust-lang.org/1.64.0/std/process/fn.exit.html" title="std::process::exit"><code>std::process::exit</code></a> yourself.</p>
|
||
<p><strong>NOTE:</strong> The first argument will be parsed as the binary name unless
|
||
<a href="builder/struct.Command.html#method.no_binary_name" title="Command::no_binary_name"><code>Command::no_binary_name</code></a> is used.</p>
|
||
<h5 id="panics-7"><a href="#panics-7">Panics</a></h5>
|
||
<p>If contradictory arguments or settings exist.</p>
|
||
<h5 id="examples-17"><a href="#examples-17">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">arg_vec</span> <span class="op">=</span> <span class="macro">vec!</span>[<span class="string">"my_prog"</span>, <span class="string">"some"</span>, <span class="string">"args"</span>, <span class="string">"to"</span>, <span class="string">"parse"</span>];
|
||
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>);
|
||
<span class="comment">// Args and options go here...</span>
|
||
<span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">try_get_matches_from_mut</span>(<span class="ident">arg_vec</span>)
|
||
.<span class="ident">unwrap_or_else</span>(<span class="op">|</span><span class="ident">e</span><span class="op">|</span> <span class="ident">e</span>.<span class="ident">exit</span>());</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.print_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#723-733">source</a></span><h4 class="code-header">pub fn <a href="#method.print_help" class="fnname">print_help</a>(&mut self) -> <a class="type" href="https://doc.rust-lang.org/1.64.0/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.unit.html">()</a>></h4></section></summary><div class="docblock"><p>Prints the short help message (<code>-h</code>) to <a href="https://doc.rust-lang.org/1.64.0/std/io/stdio/fn.stdout.html"><code>io::stdout()</code></a>.</p>
|
||
<p>See also <a href="builder/struct.Command.html#method.print_long_help" title="Command::print_long_help"><code>Command::print_long_help</code></a>.</p>
|
||
<h5 id="examples-18"><a href="#examples-18">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>);
|
||
<span class="ident">cmd</span>.<span class="ident">print_help</span>();</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.print_long_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#750-760">source</a></span><h4 class="code-header">pub fn <a href="#method.print_long_help" class="fnname">print_long_help</a>(&mut self) -> <a class="type" href="https://doc.rust-lang.org/1.64.0/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.unit.html">()</a>></h4></section></summary><div class="docblock"><p>Prints the long help message (<code>--help</code>) to <a href="https://doc.rust-lang.org/1.64.0/std/io/stdio/fn.stdout.html"><code>io::stdout()</code></a>.</p>
|
||
<p>See also <a href="builder/struct.Command.html#method.print_help" title="Command::print_help"><code>Command::print_help</code></a>.</p>
|
||
<h5 id="examples-19"><a href="#examples-19">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>);
|
||
<span class="ident">cmd</span>.<span class="ident">print_long_help</span>();</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.render_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#779-786">source</a></span><h4 class="code-header">pub fn <a href="#method.render_help" class="fnname">render_help</a>(&mut self) -> <a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a></h4></section></summary><div class="docblock"><p>Render the short help message (<code>-h</code>) to a <a href="builder/struct.StyledStr.html" title="StyledStr"><code>StyledStr</code></a></p>
|
||
<p>See also <a href="builder/struct.Command.html#method.render_long_help" title="Command::render_long_help"><code>Command::render_long_help</code></a>.</p>
|
||
<h5 id="examples-20"><a href="#examples-20">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use</span> <span class="ident">std::io</span>;
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>);
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">out</span> <span class="op">=</span> <span class="ident">io::stdout</span>();
|
||
<span class="kw">let</span> <span class="ident">help</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">render_help</span>();
|
||
<span class="macro">println!</span>(<span class="string">"{}"</span>, <span class="ident">help</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.render_long_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#805-812">source</a></span><h4 class="code-header">pub fn <a href="#method.render_long_help" class="fnname">render_long_help</a>(&mut self) -> <a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a></h4></section></summary><div class="docblock"><p>Render the long help message (<code>--help</code>) to a <a href="builder/struct.StyledStr.html" title="StyledStr"><code>StyledStr</code></a>.</p>
|
||
<p>See also <a href="builder/struct.Command.html#method.render_help" title="Command::render_help"><code>Command::render_help</code></a>.</p>
|
||
<h5 id="examples-21"><a href="#examples-21">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use</span> <span class="ident">std::io</span>;
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>);
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">out</span> <span class="op">=</span> <span class="ident">io::stdout</span>();
|
||
<span class="kw">let</span> <span class="ident">help</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">render_long_help</span>();
|
||
<span class="macro">println!</span>(<span class="string">"{}"</span>, <span class="ident">help</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.render_version" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#864-866">source</a></span><h4 class="code-header">pub fn <a href="#method.render_version" class="fnname">render_version</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/1.64.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Version message rendered as if the user ran <code>-V</code>.</p>
|
||
<p>See also <a href="builder/struct.Command.html#method.render_long_version" title="Command::render_long_version"><code>Command::render_long_version</code></a>.</p>
|
||
<h6 id="coloring"><a href="#coloring">Coloring</a></h6>
|
||
<p>This function does not try to color the message nor it inserts any <a href="https://en.wikipedia.org/wiki/ANSI_escape_code">ANSI escape codes</a>.</p>
|
||
<h6 id="examples-22"><a href="#examples-22">Examples</a></h6>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use</span> <span class="ident">std::io</span>;
|
||
<span class="kw">let</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>);
|
||
<span class="macro">println!</span>(<span class="string">"{}"</span>, <span class="ident">cmd</span>.<span class="ident">render_version</span>());</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.render_long_version" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#888-890">source</a></span><h4 class="code-header">pub fn <a href="#method.render_long_version" class="fnname">render_long_version</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/1.64.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Version message rendered as if the user ran <code>--version</code>.</p>
|
||
<p>See also <a href="builder/struct.Command.html#method.render_version" title="Command::render_version"><code>Command::render_version</code></a>.</p>
|
||
<h6 id="coloring-1"><a href="#coloring-1">Coloring</a></h6>
|
||
<p>This function does not try to color the message nor it inserts any <a href="https://en.wikipedia.org/wiki/ANSI_escape_code">ANSI escape codes</a>.</p>
|
||
<h6 id="examples-23"><a href="#examples-23">Examples</a></h6>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use</span> <span class="ident">std::io</span>;
|
||
<span class="kw">let</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>);
|
||
<span class="macro">println!</span>(<span class="string">"{}"</span>, <span class="ident">cmd</span>.<span class="ident">render_long_version</span>());</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.render_usage" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#902-904">source</a></span><h4 class="code-header">pub fn <a href="#method.render_usage" class="fnname">render_usage</a>(&mut self) -> <a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a></h4></section></summary><div class="docblock"><p>Usage statement</p>
|
||
<h6 id="examples-24"><a href="#examples-24">Examples</a></h6>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use</span> <span class="ident">std::io</span>;
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>);
|
||
<span class="macro">println!</span>(<span class="string">"{}"</span>, <span class="ident">cmd</span>.<span class="ident">render_usage</span>());</code></pre></div>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Command-1" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#919-1387">source</a></span><a href="#impl-Command-1" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="docblock"><h4 id="application-wide-settings"><a href="#application-wide-settings">Application-wide Settings</a></h4>
|
||
<p>These settings will apply to the top-level command and all subcommands, by default. Some
|
||
settings can be overridden in subcommands.</p>
|
||
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.no_binary_name" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#939-945">source</a></span><h4 class="code-header">pub fn <a href="#method.no_binary_name" class="fnname">no_binary_name</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Specifies that the parser should not assume the first argument passed is the binary name.</p>
|
||
<p>This is normally the case when using a “daemon” style mode. For shells / REPLs, see
|
||
<a href="builder/struct.Command.html#method.multicall" title="Command::multicall"><code>Command::multicall</code></a>.</p>
|
||
<h5 id="examples-25"><a href="#examples-25">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">no_binary_name</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="op"><</span><span class="ident">cmd</span><span class="op">></span> ... <span class="string">"commands to run"</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"command"</span>, <span class="string">"set"</span>]);
|
||
|
||
<span class="kw">let</span> <span class="ident">cmds</span>: <span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span> <span class="op">=</span> <span class="ident">m</span>.<span class="ident">get_many</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"cmd"</span>).<span class="ident">unwrap</span>().<span class="ident">collect</span>();
|
||
<span class="macro">assert_eq!</span>(<span class="ident">cmds</span>, [<span class="string">"command"</span>, <span class="string">"set"</span>]);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ignore_errors" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#970-976">source</a></span><h4 class="code-header">pub fn <a href="#method.ignore_errors" class="fnname">ignore_errors</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Try not to fail on parse errors, like missing option values.</p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
<h5 id="examples-26"><a href="#examples-26">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"cmd"</span>)
|
||
.<span class="ident">ignore_errors</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="op">-</span><span class="ident">c</span> <span class="op">-</span><span class="op">-</span><span class="ident">config</span> <span class="op"><</span><span class="ident">FILE</span><span class="op">></span> <span class="string">"Sets a custom config file"</span>))
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="op">-</span><span class="ident">x</span> <span class="op">-</span><span class="op">-</span><span class="ident">stuff</span> <span class="op"><</span><span class="ident">FILE</span><span class="op">></span> <span class="string">"Sets a custom stuff file"</span>))
|
||
.<span class="ident">arg</span>(<span class="macro">arg!</span>(<span class="ident">f</span>: <span class="op">-</span><span class="ident">f</span> <span class="string">"Flag"</span>));
|
||
|
||
<span class="kw">let</span> <span class="ident">r</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">try_get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"cmd"</span>, <span class="string">"-c"</span>, <span class="string">"file"</span>, <span class="string">"-f"</span>, <span class="string">"-x"</span>]);
|
||
|
||
<span class="macro">assert!</span>(<span class="ident">r</span>.<span class="ident">is_ok</span>(), <span class="string">"unexpected error: {:?}"</span>, <span class="ident">r</span>);
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">r</span>.<span class="ident">unwrap</span>();
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"config"</span>).<span class="ident">unwrap</span>(), <span class="string">"file"</span>);
|
||
<span class="macro">assert!</span>(<span class="kw-2">*</span><span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">bool</span><span class="op">></span>(<span class="string">"f"</span>).<span class="ident">expect</span>(<span class="string">"defaulted"</span>));
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"stuff"</span>), <span class="prelude-val">None</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.args_override_self" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#990-996">source</a></span><h4 class="code-header">pub fn <a href="#method.args_override_self" class="fnname">args_override_self</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Replace prior occurrences of arguments rather than error</p>
|
||
<p>For any argument that would conflict with itself by default (e.g.
|
||
<a href="builder/enum.ArgAction.html#variant.Set" title="ArgAction::Set"><code>ArgAction::Set</code></a>, it will now override itself.</p>
|
||
<p>This is the equivalent to saying the <code>foo</code> arg using <a href="builder/struct.Arg.html#method.overrides_with"><code>Arg::overrides_with("foo")</code></a> for all
|
||
defined arguments.</p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dont_delimit_trailing_values" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1018-1024">source</a></span><h4 class="code-header">pub fn <a href="#method.dont_delimit_trailing_values" class="fnname">dont_delimit_trailing_values</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Disables the automatic delimiting of values after <code>--</code> or when <a href="builder/struct.Command.html#method.trailing_var_arg" title="Command::trailing_var_arg"><code>Command::trailing_var_arg</code></a>
|
||
was used.</p>
|
||
<p><strong>NOTE:</strong> The same thing can be done manually by setting the final positional argument to
|
||
<a href="builder/struct.Arg.html#method.value_delimiter"><code>Arg::value_delimiter(None)</code></a>. Using this setting is safer, because it’s easier to locate
|
||
when making changes.</p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
<h5 id="examples-27"><a href="#examples-27">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">dont_delimit_trailing_values</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">get_matches</span>();</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.color" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1044-1054">source</a></span><h4 class="code-header">pub fn <a href="#method.color" class="fnname">color</a>(self, color: <a class="enum" href="enum.ColorChoice.html" title="enum clap::ColorChoice">ColorChoice</a>) -> Self</h4></section></summary><div class="docblock"><p>Sets when to color output.</p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
<p><strong>NOTE:</strong> Default behaviour is <a href="enum.ColorChoice.html#variant.Auto"><code>ColorChoice::Auto</code></a>.</p>
|
||
<h5 id="examples-28"><a href="#examples-28">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">color</span>(<span class="ident">ColorChoice::Never</span>)
|
||
.<span class="ident">get_matches</span>();</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.term_width" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1078-1081">source</a></span><h4 class="code-header">pub fn <a href="#method.term_width" class="fnname">term_width</a>(self, width: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>) -> Self</h4></section></summary><div class="docblock"><p>Sets the terminal width at which to wrap help messages.</p>
|
||
<p>Using <code>0</code> will ignore terminal widths and use source formatting.</p>
|
||
<p>Defaults to current terminal width when <code>wrap_help</code> feature flag is enabled. If the flag
|
||
is disabled or it cannot be determined, the default is 100.</p>
|
||
<p><strong>NOTE:</strong> This setting applies globally and <em>not</em> on a per-command basis.</p>
|
||
<p><strong>NOTE:</strong> This requires the [<code>wrap_help</code> feature][crate::_features]</p>
|
||
<h5 id="examples-29"><a href="#examples-29">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">term_width</span>(<span class="number">80</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_term_width" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1105-1108">source</a></span><h4 class="code-header">pub fn <a href="#method.max_term_width" class="fnname">max_term_width</a>(self, w: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>) -> Self</h4></section></summary><div class="docblock"><p>Limit the line length for wrapping help when using the current terminal’s width.</p>
|
||
<p>This only applies when <a href="builder/struct.Command.html#method.term_width" title="Command::term_width"><code>term_width</code></a> is unset so that the current
|
||
terminal’s width will be used. See <a href="builder/struct.Command.html#method.term_width" title="Command::term_width"><code>Command::term_width</code></a> for more details.</p>
|
||
<p>Using <code>0</code> will ignore terminal widths and use source formatting (default).</p>
|
||
<p><strong>NOTE:</strong> This setting applies globally and <em>not</em> on a per-command basis.</p>
|
||
<p><strong>NOTE:</strong> This requires the [<code>wrap_help</code> feature][crate::_features]</p>
|
||
<h5 id="examples-30"><a href="#examples-30">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">max_term_width</span>(<span class="number">100</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.disable_version_flag" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1125-1131">source</a></span><h4 class="code-header">pub fn <a href="#method.disable_version_flag" class="fnname">disable_version_flag</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Disables <code>-V</code> and <code>--version</code> flag.</p>
|
||
<h5 id="examples-31"><a href="#examples-31">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">disable_version_flag</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">try_get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"myprog"</span>, <span class="string">"-V"</span>
|
||
]);
|
||
<span class="macro">assert!</span>(<span class="ident">res</span>.<span class="ident">is_err</span>());
|
||
<span class="macro">assert_eq!</span>(<span class="ident">res</span>.<span class="ident">unwrap_err</span>().<span class="ident">kind</span>(), <span class="ident">ErrorKind::UnknownArgument</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.propagate_version" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1154-1160">source</a></span><h4 class="code-header">pub fn <a href="#method.propagate_version" class="fnname">propagate_version</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Specifies to use the version of the current command for all <a href="builder/struct.Command.html#method.subcommand"><code>subcommands</code></a>.</p>
|
||
<p>Defaults to <code>false</code>; subcommands have independent version strings from their parents.</p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
<h5 id="examples-32"><a href="#examples-32">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">version</span>(<span class="string">"v1.1"</span>)
|
||
.<span class="ident">propagate_version</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>))
|
||
.<span class="ident">get_matches</span>();
|
||
<span class="comment">// running `$ myprog test --version` will display</span>
|
||
<span class="comment">// "myprog-test v1.1"</span></code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_line_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1175-1181">source</a></span><h4 class="code-header">pub fn <a href="#method.next_line_help" class="fnname">next_line_help</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Places the help string for all arguments and subcommands on the line after them.</p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
<h5 id="examples-33"><a href="#examples-33">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">next_line_help</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">get_matches</span>();</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.disable_help_flag" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1200-1206">source</a></span><h4 class="code-header">pub fn <a href="#method.disable_help_flag" class="fnname">disable_help_flag</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Disables <code>-h</code> and <code>--help</code> flag.</p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
<h5 id="examples-34"><a href="#examples-34">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">disable_help_flag</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">try_get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"myprog"</span>, <span class="string">"-h"</span>
|
||
]);
|
||
<span class="macro">assert!</span>(<span class="ident">res</span>.<span class="ident">is_err</span>());
|
||
<span class="macro">assert_eq!</span>(<span class="ident">res</span>.<span class="ident">unwrap_err</span>().<span class="ident">kind</span>(), <span class="ident">ErrorKind::UnknownArgument</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.disable_help_subcommand" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1228-1234">source</a></span><h4 class="code-header">pub fn <a href="#method.disable_help_subcommand" class="fnname">disable_help_subcommand</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Disables the <code>help</code> <a href="builder/struct.Command.html#method.subcommand"><code>subcommand</code></a>.</p>
|
||
<h5 id="examples-35"><a href="#examples-35">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">disable_help_subcommand</span>(<span class="bool-val">true</span>)
|
||
<span class="comment">// Normally, creating a subcommand causes a `help` subcommand to automatically</span>
|
||
<span class="comment">// be generated as well</span>
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>))
|
||
.<span class="ident">try_get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"myprog"</span>, <span class="string">"help"</span>
|
||
]);
|
||
<span class="macro">assert!</span>(<span class="ident">res</span>.<span class="ident">is_err</span>());
|
||
<span class="macro">assert_eq!</span>(<span class="ident">res</span>.<span class="ident">unwrap_err</span>().<span class="ident">kind</span>(), <span class="ident">ErrorKind::InvalidSubcommand</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.disable_colored_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1249-1255">source</a></span><h4 class="code-header">pub fn <a href="#method.disable_colored_help" class="fnname">disable_colored_help</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Disables colorized help messages.</p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
<h5 id="examples-36"><a href="#examples-36">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">disable_colored_help</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">get_matches</span>();</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.help_expected" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1292-1298">source</a></span><h4 class="code-header">pub fn <a href="#method.help_expected" class="fnname">help_expected</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Panic if help descriptions are omitted.</p>
|
||
<p><strong>NOTE:</strong> When deriving <a href="trait.Parser.html" title="crate::Parser"><code>Parser</code></a>, you could instead check this at
|
||
compile-time with <code>#![deny(missing_docs)]</code></p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
<h5 id="examples-37"><a href="#examples-37">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">help_expected</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">arg</span>(
|
||
<span class="ident">Arg::new</span>(<span class="string">"foo"</span>).<span class="ident">help</span>(<span class="string">"It does foo stuff"</span>)
|
||
<span class="comment">// As required via `help_expected`, a help message was supplied</span>
|
||
)</code></pre></div>
|
||
<h5 id="panics-8"><a href="#panics-8">Panics</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myapp"</span>)
|
||
.<span class="ident">help_expected</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">arg</span>(
|
||
<span class="ident">Arg::new</span>(<span class="string">"foo"</span>)
|
||
<span class="comment">// Someone forgot to put .about("...") here</span>
|
||
<span class="comment">// Since the setting `help_expected` is activated, this will lead to</span>
|
||
<span class="comment">// a panic (if you are in debug mode)</span>
|
||
)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hide_possible_values" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1318-1324">source</a></span><h4 class="code-header">pub fn <a href="#method.hide_possible_values" class="fnname">hide_possible_values</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Tells <code>clap</code> <em>not</em> to print possible values when displaying help information.</p>
|
||
<p>This can be useful if there are many values, or they are explained elsewhere.</p>
|
||
<p>To set this per argument, see
|
||
<a href="builder/struct.Arg.html#method.hide_possible_values" title="crate::Arg::hide_possible_values"><code>Arg::hide_possible_values</code></a>.</p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.infer_long_args" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1339-1345">source</a></span><h4 class="code-header">pub fn <a href="#method.infer_long_args" class="fnname">infer_long_args</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Allow partial matches of long arguments or their <a href="builder/struct.Command.html#method.aliases">aliases</a>.</p>
|
||
<p>For example, to match an argument named <code>--test</code>, one could use <code>--t</code>, <code>--te</code>, <code>--tes</code>, and
|
||
<code>--test</code>.</p>
|
||
<p><strong>NOTE:</strong> The match <em>must not</em> be ambiguous at all in order to succeed. i.e. to match
|
||
<code>--te</code> to <code>--test</code> there could not also be another argument or alias <code>--temp</code> because both
|
||
start with <code>--te</code></p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.infer_subcommands" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1380-1386">source</a></span><h4 class="code-header">pub fn <a href="#method.infer_subcommands" class="fnname">infer_subcommands</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Allow partial matches of <a href="builder/struct.Command.html#method.subcommand">subcommand</a> names and their <a href="builder/struct.Command.html#method.aliases">aliases</a>.</p>
|
||
<p>For example, to match a subcommand named <code>test</code>, one could use <code>t</code>, <code>te</code>, <code>tes</code>, and
|
||
<code>test</code>.</p>
|
||
<p><strong>NOTE:</strong> The match <em>must not</em> be ambiguous at all in order to succeed. i.e. to match <code>te</code>
|
||
to <code>test</code> there could not also be a subcommand or alias <code>temp</code> because both start with <code>te</code></p>
|
||
<p><strong>CAUTION:</strong> This setting can interfere with <a href="builder/struct.Arg.html#method.index">positional/free arguments</a>, take care when
|
||
designing CLIs which allow inferred subcommands and have potential positional/free
|
||
arguments whose values could start with the same characters as subcommands. If this is the
|
||
case, it’s recommended to use settings such as <a href="builder/struct.Command.html#method.args_conflicts_with_subcommands" title="Command::args_conflicts_with_subcommands"><code>Command::args_conflicts_with_subcommands</code></a> in
|
||
conjunction with this setting.</p>
|
||
<p><strong>NOTE:</strong> This choice is propagated to all child subcommands.</p>
|
||
<h5 id="examples-38"><a href="#examples-38">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"prog"</span>)
|
||
.<span class="ident">infer_subcommands</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"prog"</span>, <span class="string">"te"</span>
|
||
]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Command-2" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1392-2168">source</a></span><a href="#impl-Command-2" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="docblock"><h4 id="command-specific-settings"><a href="#command-specific-settings">Command-specific Settings</a></h4>
|
||
<p>These apply only to the current command and are not inherited by subcommands.</p>
|
||
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1406-1409">source</a></span><h4 class="code-header">pub fn <a href="#method.name" class="fnname">name</a>(self, name: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>(Re)Sets the program’s name.</p>
|
||
<p>See <a href="builder/struct.Command.html#method.new" title="Command::new"><code>Command::new</code></a> for more details.</p>
|
||
<h5 id="examples-39"><a href="#examples-39">Examples</a></h5>
|
||
<div class='information'><div class='tooltip ignore'>ⓘ</div></div><div class="example-wrap"><pre class="rust rust-example-rendered ignore"><code><span class="kw">let</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="macro">clap::command!</span>()
|
||
.<span class="ident">name</span>(<span class="string">"foo"</span>);
|
||
|
||
<span class="comment">// continued logic goes here, such as `cmd.get_matches()` etc.</span></code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.bin_name" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1432-1435">source</a></span><h4 class="code-header">pub fn <a href="#method.bin_name" class="fnname">bin_name</a>(self, name: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="https://doc.rust-lang.org/1.64.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>) -> Self</h4></section></summary><div class="docblock"><p>Overrides the runtime-determined name of the binary for help and error messages.</p>
|
||
<p>This should only be used when absolutely necessary, such as when the binary name for your
|
||
application is misleading, or perhaps <em>not</em> how the user should invoke your program.</p>
|
||
<p><strong>Pro-tip:</strong> When building things such as third party <code>cargo</code>
|
||
subcommands, this setting <strong>should</strong> be used!</p>
|
||
<p><strong>NOTE:</strong> This <em>does not</em> change or set the name of the binary file on
|
||
disk. It only changes what clap thinks the name is for the purposes of
|
||
error or help messages.</p>
|
||
<h5 id="examples-40"><a href="#examples-40">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"My Program"</span>)
|
||
.<span class="ident">bin_name</span>(<span class="string">"my_binary"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.display_name" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1448-1451">source</a></span><h4 class="code-header">pub fn <a href="#method.display_name" class="fnname">display_name</a>(self, name: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="https://doc.rust-lang.org/1.64.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>) -> Self</h4></section></summary><div class="docblock"><p>Overrides the runtime-determined display name of the program for help and error messages.</p>
|
||
<h5 id="examples-41"><a href="#examples-41">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"My Program"</span>)
|
||
.<span class="ident">display_name</span>(<span class="string">"my_program"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.author" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1471-1474">source</a></span><h4 class="code-header">pub fn <a href="#method.author" class="fnname">author</a>(self, author: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets the author(s) for the help message.</p>
|
||
<p><strong>Pro-tip:</strong> Use <code>clap</code>s convenience macro [<code>crate_authors!</code>] to
|
||
automatically set your application’s author(s) to the same thing as your
|
||
crate at compile time.</p>
|
||
<p><strong>NOTE:</strong> A custom <a href="builder/struct.Command.html#method.help_template" title="Command::help_template"><code>help_template</code></a> is needed for author to show
|
||
up.</p>
|
||
<h5 id="examples-42"><a href="#examples-42">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">author</span>(<span class="string">"Me, me@mymain.com"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.about" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1494-1497">source</a></span><h4 class="code-header">pub fn <a href="#method.about" class="fnname">about</a>(self, about: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets the program’s description for the short help (<code>-h</code>).</p>
|
||
<p>If <a href="builder/struct.Command.html#method.long_about" title="Command::long_about"><code>Command::long_about</code></a> is not specified, this message will be displayed for <code>--help</code>.</p>
|
||
<p><strong>NOTE:</strong> Only <code>Command::about</code> (short format) is used in completion
|
||
script generation in order to be concise.</p>
|
||
<p>See also <a href="crate::crate_description!"><code>crate_description!</code></a>.</p>
|
||
<h5 id="examples-43"><a href="#examples-43">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">about</span>(<span class="string">"Does really amazing things for great people"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.long_about" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1519-1522">source</a></span><h4 class="code-header">pub fn <a href="#method.long_about" class="fnname">long_about</a>(self, long_about: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets the program’s description for the long help (<code>--help</code>).</p>
|
||
<p>If <a href="builder/struct.Command.html#method.about"><code>Command::about</code></a> is not specified, this message will be displayed for <code>-h</code>.</p>
|
||
<p><strong>NOTE:</strong> Only <a href="builder/struct.Command.html#method.about"><code>Command::about</code></a> (short format) is used in completion
|
||
script generation in order to be concise.</p>
|
||
<h5 id="examples-44"><a href="#examples-44">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">long_about</span>(
|
||
<span class="string">"Does really amazing things to great people. Now let's talk a little
|
||
more in depth about how this subcommand really works. It may take about
|
||
a few lines of text, but that's ok!"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.after_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1541-1544">source</a></span><h4 class="code-header">pub fn <a href="#method.after_help" class="fnname">after_help</a>(self, help: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>>) -> Self</h4></section></summary><div class="docblock"><p>Free-form help text for after auto-generated short help (<code>-h</code>).</p>
|
||
<p>This is often used to describe how to use the arguments, caveats to be noted, or license
|
||
and contact information.</p>
|
||
<p>If <a href="builder/struct.Command.html#method.after_long_help" title="Command::after_long_help"><code>Command::after_long_help</code></a> is not specified, this message will be displayed for <code>--help</code>.</p>
|
||
<h5 id="examples-45"><a href="#examples-45">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">after_help</span>(<span class="string">"Does really amazing things for great people... but be careful with -R!"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.after_long_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1563-1566">source</a></span><h4 class="code-header">pub fn <a href="#method.after_long_help" class="fnname">after_long_help</a>(self, help: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>>) -> Self</h4></section></summary><div class="docblock"><p>Free-form help text for after auto-generated long help (<code>--help</code>).</p>
|
||
<p>This is often used to describe how to use the arguments, caveats to be noted, or license
|
||
and contact information.</p>
|
||
<p>If <a href="builder/struct.Command.html#method.after_help" title="Command::after_help"><code>Command::after_help</code></a> is not specified, this message will be displayed for <code>-h</code>.</p>
|
||
<h5 id="examples-46"><a href="#examples-46">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">after_long_help</span>(<span class="string">"Does really amazing things to great people... but be careful with -R, \
|
||
like, for real, be careful with this!"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.before_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1583-1586">source</a></span><h4 class="code-header">pub fn <a href="#method.before_help" class="fnname">before_help</a>(self, help: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>>) -> Self</h4></section></summary><div class="docblock"><p>Free-form help text for before auto-generated short help (<code>-h</code>).</p>
|
||
<p>This is often used for header, copyright, or license information.</p>
|
||
<p>If <a href="builder/struct.Command.html#method.before_long_help" title="Command::before_long_help"><code>Command::before_long_help</code></a> is not specified, this message will be displayed for <code>--help</code>.</p>
|
||
<h5 id="examples-47"><a href="#examples-47">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">before_help</span>(<span class="string">"Some info I'd like to appear before the help info"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.before_long_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1603-1606">source</a></span><h4 class="code-header">pub fn <a href="#method.before_long_help" class="fnname">before_long_help</a>(self, help: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>>) -> Self</h4></section></summary><div class="docblock"><p>Free-form help text for before auto-generated long help (<code>--help</code>).</p>
|
||
<p>This is often used for header, copyright, or license information.</p>
|
||
<p>If <a href="builder/struct.Command.html#method.before_help" title="Command::before_help"><code>Command::before_help</code></a> is not specified, this message will be displayed for <code>-h</code>.</p>
|
||
<h5 id="examples-48"><a href="#examples-48">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">before_long_help</span>(<span class="string">"Some verbose and long info I'd like to appear before the help info"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.version" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1625-1628">source</a></span><h4 class="code-header">pub fn <a href="#method.version" class="fnname">version</a>(self, ver: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets the version for the short version (<code>-V</code>) and help messages.</p>
|
||
<p>If <a href="builder/struct.Command.html#method.long_version" title="Command::long_version"><code>Command::long_version</code></a> is not specified, this message will be displayed for <code>--version</code>.</p>
|
||
<p><strong>Pro-tip:</strong> Use <code>clap</code>s convenience macro [<code>crate_version!</code>] to
|
||
automatically set your application’s version to the same thing as your
|
||
crate at compile time.</p>
|
||
<h5 id="examples-49"><a href="#examples-49">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">version</span>(<span class="string">"v0.1.24"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.long_version" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1652-1655">source</a></span><h4 class="code-header">pub fn <a href="#method.long_version" class="fnname">long_version</a>(self, ver: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets the version for the long version (<code>--version</code>) and help messages.</p>
|
||
<p>If <a href="builder/struct.Command.html#method.version" title="Command::version"><code>Command::version</code></a> is not specified, this message will be displayed for <code>-V</code>.</p>
|
||
<p><strong>Pro-tip:</strong> Use <code>clap</code>s convenience macro [<code>crate_version!</code>] to
|
||
automatically set your application’s version to the same thing as your
|
||
crate at compile time.</p>
|
||
<h5 id="examples-50"><a href="#examples-50">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">long_version</span>(
|
||
<span class="string">"v0.1.24
|
||
commit: abcdef89726d
|
||
revision: 123
|
||
release: 2
|
||
binary: myprog"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.override_usage" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1695-1698">source</a></span><h4 class="code-header">pub fn <a href="#method.override_usage" class="fnname">override_usage</a>(self, usage: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>>) -> Self</h4></section></summary><div class="docblock"><p>Overrides the <code>clap</code> generated usage string for help and error messages.</p>
|
||
<p><strong>NOTE:</strong> Using this setting disables <code>clap</code>s “context-aware” usage
|
||
strings. After this setting is set, this will be <em>the only</em> usage string
|
||
displayed to the user!</p>
|
||
<p><strong>NOTE:</strong> Multiple usage lines may be present in the usage argument, but
|
||
some rules need to be followed to ensure the usage lines are formatted
|
||
correctly by the default help formatter:</p>
|
||
<ul>
|
||
<li>Do not indent the first usage line.</li>
|
||
<li>Indent all subsequent usage lines with seven spaces.</li>
|
||
<li>The last line must not end with a newline.</li>
|
||
</ul>
|
||
<h5 id="examples-51"><a href="#examples-51">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">override_usage</span>(<span class="string">"myapp [-clDas] <some_file>"</span>)</code></pre></div>
|
||
<p>Or for multiple usage lines:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">override_usage</span>(
|
||
<span class="string">"myapp -X [-a] [-b] <file>\n \
|
||
myapp -Y [-c] <file1> <file2>\n \
|
||
myapp -Z [-d|-e]"</span>
|
||
)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.override_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1732-1735">source</a></span><h4 class="code-header">pub fn <a href="#method.override_help" class="fnname">override_help</a>(self, help: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>>) -> Self</h4></section></summary><div class="docblock"><p>Overrides the <code>clap</code> generated help message (both <code>-h</code> and <code>--help</code>).</p>
|
||
<p>This should only be used when the auto-generated message does not suffice.</p>
|
||
<p><strong>NOTE:</strong> This <strong>only</strong> replaces the help message for the current
|
||
command, meaning if you are using subcommands, those help messages will
|
||
still be auto-generated unless you specify a <a href="builder/struct.Command.html#method.override_help" title="Command::override_help"><code>Command::override_help</code></a> for
|
||
them as well.</p>
|
||
<h5 id="examples-52"><a href="#examples-52">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myapp"</span>)
|
||
.<span class="ident">override_help</span>(<span class="string">"myapp v1.0\n\
|
||
Does awesome things\n\
|
||
(C) me@mail.com\n\n\
|
||
|
||
Usage: myapp <opts> <command>\n\n\
|
||
|
||
Options:\n\
|
||
-h, --help Display this message\n\
|
||
-V, --version Display version info\n\
|
||
-s <stuff> Do something with stuff\n\
|
||
-v Be verbose\n\n\
|
||
|
||
Commands:\n\
|
||
help Print this message\n\
|
||
work Do some work"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.help_template" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1802-1805">source</a></span><h4 class="code-header">pub fn <a href="#method.help_template" class="fnname">help_template</a>(self, s: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets the help template to be used, overriding the default format.</p>
|
||
<p><strong>NOTE:</strong> The template system is by design very simple. Therefore, the
|
||
tags have to be written in the lowercase and without spacing.</p>
|
||
<p>Tags are given inside curly brackets.</p>
|
||
<p>Valid tags are:</p>
|
||
<ul>
|
||
<li><code>{name}</code> - Display name for the (sub-)command.</li>
|
||
<li><code>{bin}</code> - Binary name.(deprecated)</li>
|
||
<li><code>{version}</code> - Version number.</li>
|
||
<li><code>{author}</code> - Author information.</li>
|
||
<li><code>{author-with-newline}</code> - Author followed by <code>\n</code>.</li>
|
||
<li><code>{author-section}</code> - Author preceded and followed by <code>\n</code>.</li>
|
||
<li><code>{about}</code> - General description (from <a href="builder/struct.Command.html#method.about"><code>Command::about</code></a> or
|
||
<a href="builder/struct.Command.html#method.long_about"><code>Command::long_about</code></a>).</li>
|
||
<li><code>{about-with-newline}</code> - About followed by <code>\n</code>.</li>
|
||
<li><code>{about-section}</code> - About preceded and followed by ‘\n’.</li>
|
||
<li><code>{usage-heading}</code> - Automatically generated usage heading.</li>
|
||
<li><code>{usage}</code> - Automatically generated or given usage string.</li>
|
||
<li><code>{all-args}</code> - Help for all arguments (options, flags, positional
|
||
arguments, and subcommands) including titles.</li>
|
||
<li><code>{options}</code> - Help for options.</li>
|
||
<li><code>{positionals}</code> - Help for positional arguments.</li>
|
||
<li><code>{subcommands}</code> - Help for subcommands.</li>
|
||
<li><code>{tag}</code> - Standard tab sized used within clap</li>
|
||
<li><code>{after-help}</code> - Help from <a href="builder/struct.Command.html#method.after_help"><code>Command::after_help</code></a> or <a href="builder/struct.Command.html#method.after_long_help"><code>Command::after_long_help</code></a>.</li>
|
||
<li><code>{before-help}</code> - Help from <a href="builder/struct.Command.html#method.before_help"><code>Command::before_help</code></a> or <a href="builder/struct.Command.html#method.before_long_help"><code>Command::before_long_help</code></a>.</li>
|
||
</ul>
|
||
<h5 id="examples-53"><a href="#examples-53">Examples</a></h5>
|
||
<p>For a very brief help:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">version</span>(<span class="string">"1.0"</span>)
|
||
.<span class="ident">help_template</span>(<span class="string">"{name} ({version}) - {usage}"</span>)</code></pre></div>
|
||
<p>For showing more application context:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">version</span>(<span class="string">"1.0"</span>)
|
||
.<span class="ident">help_template</span>(<span class="string">"\
|
||
{before-help}{name} {version}
|
||
{author-with-newline}{about-with-newline}
|
||
{usage-heading} {usage}
|
||
|
||
{all-args}{after-help}
|
||
"</span>)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_help_heading" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1856-1859">source</a></span><h4 class="code-header">pub fn <a href="#method.next_help_heading" class="fnname">next_help_heading</a>(self, heading: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Set the default section heading for future args.</p>
|
||
<p>This will be used for any arg that hasn’t had <a href="builder/struct.Arg.html#method.help_heading"><code>Arg::help_heading</code></a> called.</p>
|
||
<p>This is useful if the default <code>Options</code> or <code>Arguments</code> headings are
|
||
not specific enough for one’s use case.</p>
|
||
<p>For subcommands, see <a href="builder/struct.Command.html#method.subcommand_help_heading" title="Command::subcommand_help_heading"><code>Command::subcommand_help_heading</code></a></p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_display_order" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#1866-1869">source</a></span><h4 class="code-header">pub fn <a href="#method.next_display_order" class="fnname">next_display_order</a>(self, disp_ord: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>>) -> Self</h4></section></summary><div class="docblock"><p>Change the starting value for assigning future display orders for ags.</p>
|
||
<p>This will be used for any arg that hasn’t had <a href="builder/struct.Arg.html#method.display_order" title="Arg::display_order"><code>Arg::display_order</code></a> called.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.arg_required_else_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2006-2012">source</a></span><h4 class="code-header">pub fn <a href="#method.arg_required_else_help" class="fnname">arg_required_else_help</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Exit gracefully if no arguments are present (e.g. <code>$ myprog</code>).</p>
|
||
<p><strong>NOTE:</strong> <a href="builder/struct.Command.html#method.subcommand"><code>subcommands</code></a> count as arguments</p>
|
||
<h5 id="examples-54"><a href="#examples-54">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">arg_required_else_help</span>(<span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_missing_positional" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2161-2167">source</a></span><h4 class="code-header">pub fn <a href="#method.allow_missing_positional" class="fnname">allow_missing_positional</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Allows one to implement two styles of CLIs where positionals can be used out of order.</p>
|
||
<p>The first example is a CLI where the second to last positional argument is optional, but
|
||
the final positional argument is required. Such as <code>$ prog [optional] <required></code> where one
|
||
of the two following usages is allowed:</p>
|
||
<ul>
|
||
<li><code>$ prog [optional] <required></code></li>
|
||
<li><code>$ prog <required></code></li>
|
||
</ul>
|
||
<p>This would otherwise not be allowed. This is useful when <code>[optional]</code> has a default value.</p>
|
||
<p><strong>Note:</strong> when using this style of “missing positionals” the final positional <em>must</em> be
|
||
<a href="builder/struct.Arg.html#method.required">required</a> if <code>--</code> will not be used to skip to the final positional argument.</p>
|
||
<p><strong>Note:</strong> This style also only allows a single positional argument to be “skipped” without
|
||
the use of <code>--</code>. To skip more than one, see the second example.</p>
|
||
<p>The second example is when one wants to skip multiple optional positional arguments, and use
|
||
of the <code>--</code> operator is OK (but not required if all arguments will be specified anyways).</p>
|
||
<p>For example, imagine a CLI which has three positional arguments <code>[foo] [bar] [baz]...</code> where
|
||
<code>baz</code> accepts multiple values (similar to man <code>ARGS...</code> style training arguments).</p>
|
||
<p>With this setting the following invocations are posisble:</p>
|
||
<ul>
|
||
<li><code>$ prog foo bar baz1 baz2 baz3</code></li>
|
||
<li><code>$ prog foo -- baz1 baz2 baz3</code></li>
|
||
<li><code>$ prog -- baz1 baz2 baz3</code></li>
|
||
</ul>
|
||
<h5 id="examples-55"><a href="#examples-55">Examples</a></h5>
|
||
<p>Style number one from above:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Assume there is an external subcommand named "subcmd"</span>
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">allow_missing_positional</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"arg1"</span>))
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"arg2"</span>)
|
||
.<span class="ident">required</span>(<span class="bool-val">true</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"prog"</span>, <span class="string">"other"</span>
|
||
]);
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"arg1"</span>), <span class="prelude-val">None</span>);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"arg2"</span>).<span class="ident">unwrap</span>(), <span class="string">"other"</span>);</code></pre></div>
|
||
<p>Now the same example, but using a default value for the first optional positional argument</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Assume there is an external subcommand named "subcmd"</span>
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">allow_missing_positional</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"arg1"</span>)
|
||
.<span class="ident">default_value</span>(<span class="string">"something"</span>))
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"arg2"</span>)
|
||
.<span class="ident">required</span>(<span class="bool-val">true</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"prog"</span>, <span class="string">"other"</span>
|
||
]);
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"arg1"</span>).<span class="ident">unwrap</span>(), <span class="string">"something"</span>);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"arg2"</span>).<span class="ident">unwrap</span>(), <span class="string">"other"</span>);</code></pre></div>
|
||
<p>Style number two from above:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Assume there is an external subcommand named "subcmd"</span>
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">allow_missing_positional</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"foo"</span>))
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"bar"</span>))
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"baz"</span>).<span class="ident">action</span>(<span class="ident">ArgAction::Set</span>).<span class="ident">num_args</span>(<span class="number">1</span>..))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"prog"</span>, <span class="string">"foo"</span>, <span class="string">"bar"</span>, <span class="string">"baz1"</span>, <span class="string">"baz2"</span>, <span class="string">"baz3"</span>
|
||
]);
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"foo"</span>).<span class="ident">unwrap</span>(), <span class="string">"foo"</span>);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"bar"</span>).<span class="ident">unwrap</span>(), <span class="string">"bar"</span>);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_many</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"baz"</span>).<span class="ident">unwrap</span>().<span class="ident">collect</span>::<span class="op"><</span><span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span><span class="op">></span>(), <span class="kw-2">&</span>[<span class="string">"baz1"</span>, <span class="string">"baz2"</span>, <span class="string">"baz3"</span>]);</code></pre></div>
|
||
<p>Now nofice if we don’t specify <code>foo</code> or <code>baz</code> but use the <code>--</code> operator.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Assume there is an external subcommand named "subcmd"</span>
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">allow_missing_positional</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"foo"</span>))
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"bar"</span>))
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"baz"</span>).<span class="ident">action</span>(<span class="ident">ArgAction::Set</span>).<span class="ident">num_args</span>(<span class="number">1</span>..))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"prog"</span>, <span class="string">"--"</span>, <span class="string">"baz1"</span>, <span class="string">"baz2"</span>, <span class="string">"baz3"</span>
|
||
]);
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"foo"</span>), <span class="prelude-val">None</span>);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"bar"</span>), <span class="prelude-val">None</span>);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">get_many</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"baz"</span>).<span class="ident">unwrap</span>().<span class="ident">collect</span>::<span class="op"><</span><span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span><span class="op">></span>(), <span class="kw-2">&</span>[<span class="string">"baz1"</span>, <span class="string">"baz2"</span>, <span class="string">"baz3"</span>]);</code></pre></div>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Command-3" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2171-3207">source</a></span><a href="#impl-Command-3" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="docblock"><h4 id="subcommand-specific-settings"><a href="#subcommand-specific-settings">Subcommand-specific Settings</a></h4></div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.short_flag" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2198-2201">source</a></span><h4 class="code-header">pub fn <a href="#method.short_flag" class="fnname">short_flag</a>(self, short: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.char.html">char</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets the short version of the subcommand flag without the preceding <code>-</code>.</p>
|
||
<p>Allows the subcommand to be used as if it were an <a href="builder/struct.Arg.html#method.short"><code>Arg::short</code></a>.</p>
|
||
<h5 id="examples-56"><a href="#examples-56">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"pacman"</span>)
|
||
.<span class="ident">subcommand</span>(
|
||
<span class="ident">Command::new</span>(<span class="string">"sync"</span>).<span class="ident">short_flag</span>(<span class="string">'S'</span>).<span class="ident">arg</span>(
|
||
<span class="ident">Arg::new</span>(<span class="string">"search"</span>)
|
||
.<span class="ident">short</span>(<span class="string">'s'</span>)
|
||
.<span class="ident">long</span>(<span class="string">"search"</span>)
|
||
.<span class="ident">action</span>(<span class="ident">ArgAction::SetTrue</span>)
|
||
.<span class="ident">help</span>(<span class="string">"search remote repositories for matching strings"</span>),
|
||
),
|
||
)
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"pacman"</span>, <span class="string">"-Ss"</span>]);
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="ident">matches</span>.<span class="ident">subcommand_name</span>().<span class="ident">unwrap</span>(), <span class="string">"sync"</span>);
|
||
<span class="kw">let</span> <span class="ident">sync_matches</span> <span class="op">=</span> <span class="ident">matches</span>.<span class="ident">subcommand_matches</span>(<span class="string">"sync"</span>).<span class="ident">unwrap</span>();
|
||
<span class="macro">assert!</span>(<span class="kw-2">*</span><span class="ident">sync_matches</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">bool</span><span class="op">></span>(<span class="string">"search"</span>).<span class="ident">expect</span>(<span class="string">"defaulted by clap"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.long_flag" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2236-2239">source</a></span><h4 class="code-header">pub fn <a href="#method.long_flag" class="fnname">long_flag</a>(self, long: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets the long version of the subcommand flag without the preceding <code>--</code>.</p>
|
||
<p>Allows the subcommand to be used as if it were an <a href="builder/struct.Arg.html#method.long"><code>Arg::long</code></a>.</p>
|
||
<p><strong>NOTE:</strong> Any leading <code>-</code> characters will be stripped.</p>
|
||
<h5 id="examples-57"><a href="#examples-57">Examples</a></h5>
|
||
<p>To set <code>long_flag</code> use a word containing valid UTF-8 codepoints. If you supply a double leading
|
||
<code>--</code> such as <code>--sync</code> they will be stripped. Hyphens in the middle of the word; however,
|
||
will <em>not</em> be stripped (i.e. <code>sync-file</code> is allowed).</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"pacman"</span>)
|
||
.<span class="ident">subcommand</span>(
|
||
<span class="ident">Command::new</span>(<span class="string">"sync"</span>).<span class="ident">long_flag</span>(<span class="string">"sync"</span>).<span class="ident">arg</span>(
|
||
<span class="ident">Arg::new</span>(<span class="string">"search"</span>)
|
||
.<span class="ident">short</span>(<span class="string">'s'</span>)
|
||
.<span class="ident">long</span>(<span class="string">"search"</span>)
|
||
.<span class="ident">action</span>(<span class="ident">ArgAction::SetTrue</span>)
|
||
.<span class="ident">help</span>(<span class="string">"search remote repositories for matching strings"</span>),
|
||
),
|
||
)
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"pacman"</span>, <span class="string">"--sync"</span>, <span class="string">"--search"</span>]);
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="ident">matches</span>.<span class="ident">subcommand_name</span>().<span class="ident">unwrap</span>(), <span class="string">"sync"</span>);
|
||
<span class="kw">let</span> <span class="ident">sync_matches</span> <span class="op">=</span> <span class="ident">matches</span>.<span class="ident">subcommand_matches</span>(<span class="string">"sync"</span>).<span class="ident">unwrap</span>();
|
||
<span class="macro">assert!</span>(<span class="kw-2">*</span><span class="ident">sync_matches</span>.<span class="ident">get_one</span>::<span class="op"><</span><span class="ident">bool</span><span class="op">></span>(<span class="string">"search"</span>).<span class="ident">expect</span>(<span class="string">"defaulted by clap"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.alias" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2267-2274">source</a></span><h4 class="code-header">pub fn <a href="#method.alias" class="fnname">alias</a>(self, name: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets a hidden alias to this subcommand.</p>
|
||
<p>This allows the subcommand to be accessed via <em>either</em> the original name, or this given
|
||
alias. This is more efficient and easier than creating multiple hidden subcommands as one
|
||
only needs to check for the existence of this command, and not all aliased variants.</p>
|
||
<p><strong>NOTE:</strong> Aliases defined with this method are <em>hidden</em> from the help
|
||
message. If you’re looking for aliases that will be displayed in the help
|
||
message, see <a href="builder/struct.Command.html#method.visible_alias"><code>Command::visible_alias</code></a>.</p>
|
||
<p><strong>NOTE:</strong> When using aliases and checking for the existence of a
|
||
particular subcommand within an <a href="parser/struct.ArgMatches.html" title="ArgMatches"><code>ArgMatches</code></a> struct, one only needs to
|
||
search for the original name and not all aliases.</p>
|
||
<h5 id="examples-58"><a href="#examples-58">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>)
|
||
.<span class="ident">alias</span>(<span class="string">"do-stuff"</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"do-stuff"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.short_flag_alias" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2293-2301">source</a></span><h4 class="code-header">pub fn <a href="#method.short_flag_alias" class="fnname">short_flag_alias</a>(self, name: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.char.html">char</a>>) -> Self</h4></section></summary><div class="docblock"><p>Add an alias, which functions as “hidden” short flag subcommand</p>
|
||
<p>This will automatically dispatch as if this subcommand was used. This is more efficient,
|
||
and easier than creating multiple hidden subcommands as one only needs to check for the
|
||
existence of this command, and not all variants.</p>
|
||
<h5 id="examples-59"><a href="#examples-59">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>).<span class="ident">short_flag</span>(<span class="string">'t'</span>)
|
||
.<span class="ident">short_flag_alias</span>(<span class="string">'d'</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"-d"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.long_flag_alias" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2320-2327">source</a></span><h4 class="code-header">pub fn <a href="#method.long_flag_alias" class="fnname">long_flag_alias</a>(self, name: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Add an alias, which functions as a “hidden” long flag subcommand.</p>
|
||
<p>This will automatically dispatch as if this subcommand was used. This is more efficient,
|
||
and easier than creating multiple hidden subcommands as one only needs to check for the
|
||
existence of this command, and not all variants.</p>
|
||
<h5 id="examples-60"><a href="#examples-60">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>).<span class="ident">long_flag</span>(<span class="string">"test"</span>)
|
||
.<span class="ident">long_flag_alias</span>(<span class="string">"testing"</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"--testing"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2358-2362">source</a></span><h4 class="code-header">pub fn <a href="#method.aliases" class="fnname">aliases</a>(self, names: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>>) -> Self</h4></section></summary><div class="docblock"><p>Sets multiple hidden aliases to this subcommand.</p>
|
||
<p>This allows the subcommand to be accessed via <em>either</em> the original name or any of the
|
||
given aliases. This is more efficient, and easier than creating multiple hidden subcommands
|
||
as one only needs to check for the existence of this command and not all aliased variants.</p>
|
||
<p><strong>NOTE:</strong> Aliases defined with this method are <em>hidden</em> from the help
|
||
message. If looking for aliases that will be displayed in the help
|
||
message, see <a href="builder/struct.Command.html#method.visible_aliases"><code>Command::visible_aliases</code></a>.</p>
|
||
<p><strong>NOTE:</strong> When using aliases and checking for the existence of a
|
||
particular subcommand within an <a href="parser/struct.ArgMatches.html" title="ArgMatches"><code>ArgMatches</code></a> struct, one only needs to
|
||
search for the original name and not all aliases.</p>
|
||
<h5 id="examples-61"><a href="#examples-61">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>)
|
||
.<span class="ident">aliases</span>([<span class="string">"do-stuff"</span>, <span class="string">"do-tests"</span>, <span class="string">"tests"</span>]))
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"input"</span>)
|
||
.<span class="ident">help</span>(<span class="string">"the file to add"</span>)
|
||
.<span class="ident">required</span>(<span class="bool-val">false</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"do-tests"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.short_flag_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2384-2390">source</a></span><h4 class="code-header">pub fn <a href="#method.short_flag_aliases" class="fnname">short_flag_aliases</a>(self, names: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.char.html">char</a>>) -> Self</h4></section></summary><div class="docblock"><p>Add aliases, which function as “hidden” short flag subcommands.</p>
|
||
<p>These will automatically dispatch as if this subcommand was used. This is more efficient,
|
||
and easier than creating multiple hidden subcommands as one only needs to check for the
|
||
existence of this command, and not all variants.</p>
|
||
<h5 id="examples-62"><a href="#examples-62">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>).<span class="ident">short_flag</span>(<span class="string">'t'</span>)
|
||
.<span class="ident">short_flag_aliases</span>([<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]))
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"input"</span>)
|
||
.<span class="ident">help</span>(<span class="string">"the file to add"</span>)
|
||
.<span class="ident">required</span>(<span class="bool-val">false</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"-a"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.long_flag_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2412-2417">source</a></span><h4 class="code-header">pub fn <a href="#method.long_flag_aliases" class="fnname">long_flag_aliases</a>(<br> self,<br> names: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>><br>) -> Self</h4></section></summary><div class="docblock"><p>Add aliases, which function as “hidden” long flag subcommands.</p>
|
||
<p>These will automatically dispatch as if this subcommand was used. This is more efficient,
|
||
and easier than creating multiple hidden subcommands as one only needs to check for the
|
||
existence of this command, and not all variants.</p>
|
||
<h5 id="examples-63"><a href="#examples-63">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>).<span class="ident">long_flag</span>(<span class="string">"test"</span>)
|
||
.<span class="ident">long_flag_aliases</span>([<span class="string">"testing"</span>, <span class="string">"testall"</span>, <span class="string">"test_all"</span>]))
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"input"</span>)
|
||
.<span class="ident">help</span>(<span class="string">"the file to add"</span>)
|
||
.<span class="ident">required</span>(<span class="bool-val">false</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"--testing"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.visible_alias" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2447-2454">source</a></span><h4 class="code-header">pub fn <a href="#method.visible_alias" class="fnname">visible_alias</a>(self, name: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets a visible alias to this subcommand.</p>
|
||
<p>This allows the subcommand to be accessed via <em>either</em> the
|
||
original name or the given alias. This is more efficient and easier
|
||
than creating hidden subcommands as one only needs to check for
|
||
the existence of this command and not all aliased variants.</p>
|
||
<p><strong>NOTE:</strong> The alias defined with this method is <em>visible</em> from the help
|
||
message and displayed as if it were just another regular subcommand. If
|
||
looking for an alias that will not be displayed in the help message, see
|
||
<a href="builder/struct.Command.html#method.alias"><code>Command::alias</code></a>.</p>
|
||
<p><strong>NOTE:</strong> When using aliases and checking for the existence of a
|
||
particular subcommand within an <a href="parser/struct.ArgMatches.html" title="ArgMatches"><code>ArgMatches</code></a> struct, one only needs to
|
||
search for the original name and not all aliases.</p>
|
||
<h5 id="examples-64"><a href="#examples-64">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>)
|
||
.<span class="ident">visible_alias</span>(<span class="string">"do-stuff"</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"do-stuff"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.visible_short_flag_alias" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2476-2484">source</a></span><h4 class="code-header">pub fn <a href="#method.visible_short_flag_alias" class="fnname">visible_short_flag_alias</a>(self, name: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.char.html">char</a>>) -> Self</h4></section></summary><div class="docblock"><p>Add an alias, which functions as “visible” short flag subcommand</p>
|
||
<p>This will automatically dispatch as if this subcommand was used. This is more efficient,
|
||
and easier than creating multiple hidden subcommands as one only needs to check for the
|
||
existence of this command, and not all variants.</p>
|
||
<p>See also <a href="builder/struct.Command.html#method.short_flag_alias"><code>Command::short_flag_alias</code></a>.</p>
|
||
<h5 id="examples-65"><a href="#examples-65">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>).<span class="ident">short_flag</span>(<span class="string">'t'</span>)
|
||
.<span class="ident">visible_short_flag_alias</span>(<span class="string">'d'</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"-d"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.visible_long_flag_alias" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2506-2513">source</a></span><h4 class="code-header">pub fn <a href="#method.visible_long_flag_alias" class="fnname">visible_long_flag_alias</a>(self, name: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Add an alias, which functions as a “visible” long flag subcommand.</p>
|
||
<p>This will automatically dispatch as if this subcommand was used. This is more efficient,
|
||
and easier than creating multiple hidden subcommands as one only needs to check for the
|
||
existence of this command, and not all variants.</p>
|
||
<p>See also <a href="builder/struct.Command.html#method.long_flag_alias"><code>Command::long_flag_alias</code></a>.</p>
|
||
<h5 id="examples-66"><a href="#examples-66">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>).<span class="ident">long_flag</span>(<span class="string">"test"</span>)
|
||
.<span class="ident">visible_long_flag_alias</span>(<span class="string">"testing"</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"--testing"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.visible_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2543-2547">source</a></span><h4 class="code-header">pub fn <a href="#method.visible_aliases" class="fnname">visible_aliases</a>(<br> self,<br> names: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>><br>) -> Self</h4></section></summary><div class="docblock"><p>Sets multiple visible aliases to this subcommand.</p>
|
||
<p>This allows the subcommand to be accessed via <em>either</em> the
|
||
original name or any of the given aliases. This is more efficient and easier
|
||
than creating multiple hidden subcommands as one only needs to check for
|
||
the existence of this command and not all aliased variants.</p>
|
||
<p><strong>NOTE:</strong> The alias defined with this method is <em>visible</em> from the help
|
||
message and displayed as if it were just another regular subcommand. If
|
||
looking for an alias that will not be displayed in the help message, see
|
||
<a href="builder/struct.Command.html#method.alias"><code>Command::alias</code></a>.</p>
|
||
<p><strong>NOTE:</strong> When using aliases, and checking for the existence of a
|
||
particular subcommand within an <a href="parser/struct.ArgMatches.html" title="ArgMatches"><code>ArgMatches</code></a> struct, one only needs to
|
||
search for the original name and not all aliases.</p>
|
||
<h5 id="examples-67"><a href="#examples-67">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>)
|
||
.<span class="ident">visible_aliases</span>([<span class="string">"do-stuff"</span>, <span class="string">"tests"</span>]))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"do-stuff"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.visible_short_flag_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2565-2571">source</a></span><h4 class="code-header">pub fn <a href="#method.visible_short_flag_aliases" class="fnname">visible_short_flag_aliases</a>(<br> self,<br> names: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.char.html">char</a>><br>) -> Self</h4></section></summary><div class="docblock"><p>Add aliases, which function as <em>visible</em> short flag subcommands.</p>
|
||
<p>See <a href="builder/struct.Command.html#method.short_flag_aliases"><code>Command::short_flag_aliases</code></a>.</p>
|
||
<h5 id="examples-68"><a href="#examples-68">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>).<span class="ident">short_flag</span>(<span class="string">'b'</span>)
|
||
.<span class="ident">visible_short_flag_aliases</span>([<span class="string">'t'</span>]))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"-t"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.visible_long_flag_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2589-2597">source</a></span><h4 class="code-header">pub fn <a href="#method.visible_long_flag_aliases" class="fnname">visible_long_flag_aliases</a>(<br> self,<br> names: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>><br>) -> Self</h4></section></summary><div class="docblock"><p>Add aliases, which function as <em>visible</em> long flag subcommands.</p>
|
||
<p>See <a href="builder/struct.Command.html#method.long_flag_aliases"><code>Command::long_flag_aliases</code></a>.</p>
|
||
<h5 id="examples-69"><a href="#examples-69">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>).<span class="ident">long_flag</span>(<span class="string">"test"</span>)
|
||
.<span class="ident">visible_long_flag_aliases</span>([<span class="string">"testing"</span>, <span class="string">"testall"</span>, <span class="string">"test_all"</span>]))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[<span class="string">"myprog"</span>, <span class="string">"--testing"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"test"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.display_order" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2649-2652">source</a></span><h4 class="code-header">pub fn <a href="#method.display_order" class="fnname">display_order</a>(self, ord: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>>) -> Self</h4></section></summary><div class="docblock"><p>Set the placement of this subcommand within the help.</p>
|
||
<p>Subcommands with a lower value will be displayed first in the help message. Subcommands
|
||
with duplicate display orders will be displayed in alphabetical order.</p>
|
||
<p>This is helpful when one would like to emphasize frequently used subcommands, or prioritize
|
||
those towards the top of the list.</p>
|
||
<p><strong>NOTE:</strong> The default is 999 for all subcommands.</p>
|
||
<h5 id="examples-70"><a href="#examples-70">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"cust-ord"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"alpha"</span>) <span class="comment">// typically subcommands are grouped</span>
|
||
<span class="comment">// alphabetically by name. Subcommands</span>
|
||
<span class="comment">// without a display_order have a value of</span>
|
||
<span class="comment">// 999 and are displayed alphabetically with</span>
|
||
<span class="comment">// all other 999 subcommands</span>
|
||
.<span class="ident">about</span>(<span class="string">"Some help and text"</span>))
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"beta"</span>)
|
||
.<span class="ident">display_order</span>(<span class="number">1</span>) <span class="comment">// In order to force this subcommand to appear *first*</span>
|
||
<span class="comment">// all we have to do is give it a value lower than 999.</span>
|
||
<span class="comment">// Any other subcommands with a value of 1 will be displayed</span>
|
||
<span class="comment">// alphabetically with this one...then 2 values, then 3, etc.</span>
|
||
.<span class="ident">about</span>(<span class="string">"I should be first!"</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"cust-ord"</span>, <span class="string">"--help"</span>
|
||
]);</code></pre></div>
|
||
<p>The above example displays the following help message</p>
|
||
<div class="example-wrap"><pre class="language-text"><code>cust-ord
|
||
|
||
Usage: cust-ord [OPTIONS]
|
||
|
||
Commands:
|
||
beta I should be first!
|
||
alpha Some help and text
|
||
|
||
Options:
|
||
-h, --help Print help information
|
||
-V, --version Print version information</code></pre></div></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hide" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2669-2675">source</a></span><h4 class="code-header">pub fn <a href="#method.hide" class="fnname">hide</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Specifies that this <a href="builder/struct.Command.html#method.subcommand"><code>subcommand</code></a> should be hidden from help messages</p>
|
||
<h5 id="examples-71"><a href="#examples-71">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(
|
||
<span class="ident">Command::new</span>(<span class="string">"test"</span>).<span class="ident">hide</span>(<span class="bool-val">true</span>)
|
||
)</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.subcommand_required" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2695-2701">source</a></span><h4 class="code-header">pub fn <a href="#method.subcommand_required" class="fnname">subcommand_required</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>If no <a href="builder/struct.Command.html#method.subcommand"><code>subcommand</code></a> is present at runtime, error and exit gracefully.</p>
|
||
<h5 id="examples-72"><a href="#examples-72">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand_required</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>))
|
||
.<span class="ident">try_get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"myprog"</span>,
|
||
]);
|
||
<span class="macro">assert!</span>(<span class="ident">err</span>.<span class="ident">is_err</span>());
|
||
<span class="macro">assert_eq!</span>(<span class="ident">err</span>.<span class="ident">unwrap_err</span>().<span class="ident">kind</span>(), <span class="ident">ErrorKind::MissingSubcommand</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_external_subcommands" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2742-2748">source</a></span><h4 class="code-header">pub fn <a href="#method.allow_external_subcommands" class="fnname">allow_external_subcommands</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Assume unexpected positional arguments are a <a href="builder/struct.Command.html#method.subcommand"><code>subcommand</code></a>.</p>
|
||
<p>Arguments will be stored in the <code>""</code> argument in the <a href="parser/struct.ArgMatches.html"><code>ArgMatches</code></a></p>
|
||
<p><strong>NOTE:</strong> Use this setting with caution,
|
||
as a truly unexpected argument (i.e. one that is <em>NOT</em> an external subcommand)
|
||
will <strong>not</strong> cause an error and instead be treated as a potential subcommand.
|
||
One should check for such cases manually and inform the user appropriately.</p>
|
||
<p><strong>NOTE:</strong> A built-in subcommand will be parsed as an external subcommand when escaped with
|
||
<code>--</code>.</p>
|
||
<h5 id="examples-73"><a href="#examples-73">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Assume there is an external subcommand named "subcmd"</span>
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">allow_external_subcommands</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"myprog"</span>, <span class="string">"subcmd"</span>, <span class="string">"--option"</span>, <span class="string">"value"</span>, <span class="string">"-fff"</span>, <span class="string">"--flag"</span>
|
||
]);
|
||
|
||
<span class="comment">// All trailing arguments will be stored under the subcommand's sub-matches using an empty</span>
|
||
<span class="comment">// string argument name</span>
|
||
<span class="kw">match</span> <span class="ident">m</span>.<span class="ident">subcommand</span>() {
|
||
<span class="prelude-val">Some</span>((<span class="ident">external</span>, <span class="ident">ext_m</span>)) => {
|
||
<span class="kw">let</span> <span class="ident">ext_args</span>: <span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span> <span class="op">=</span> <span class="ident">ext_m</span>.<span class="ident">get_many</span>::<span class="op"><</span><span class="ident">OsString</span><span class="op">></span>(<span class="string">""</span>).<span class="ident">unwrap</span>().<span class="ident">collect</span>();
|
||
<span class="macro">assert_eq!</span>(<span class="ident">external</span>, <span class="string">"subcmd"</span>);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">ext_args</span>, [<span class="string">"--option"</span>, <span class="string">"value"</span>, <span class="string">"-fff"</span>, <span class="string">"--flag"</span>]);
|
||
},
|
||
<span class="kw">_</span> => {},
|
||
}</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.external_subcommand_value_parser" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2806-2812">source</a></span><h4 class="code-header">pub fn <a href="#method.external_subcommand_value_parser" class="fnname">external_subcommand_value_parser</a>(<br> self,<br> parser: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.ValueParser.html" title="struct clap::builder::ValueParser">ValueParser</a>><br>) -> Self</h4></section></summary><div class="docblock"><p>Specifies how to parse external subcommand arguments.</p>
|
||
<p>The default parser is for <code>OsString</code>. This can be used to switch it to <code>String</code> or another
|
||
type.</p>
|
||
<p><strong>NOTE:</strong> Setting this requires <a href="builder/struct.Command.html#method.allow_external_subcommands" title="Command::allow_external_subcommands"><code>Command::allow_external_subcommands</code></a></p>
|
||
<h5 id="examples-74"><a href="#examples-74">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Assume there is an external subcommand named "subcmd"</span>
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">allow_external_subcommands</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"myprog"</span>, <span class="string">"subcmd"</span>, <span class="string">"--option"</span>, <span class="string">"value"</span>, <span class="string">"-fff"</span>, <span class="string">"--flag"</span>
|
||
]);
|
||
|
||
<span class="comment">// All trailing arguments will be stored under the subcommand's sub-matches using an empty</span>
|
||
<span class="comment">// string argument name</span>
|
||
<span class="kw">match</span> <span class="ident">m</span>.<span class="ident">subcommand</span>() {
|
||
<span class="prelude-val">Some</span>((<span class="ident">external</span>, <span class="ident">ext_m</span>)) => {
|
||
<span class="kw">let</span> <span class="ident">ext_args</span>: <span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span> <span class="op">=</span> <span class="ident">ext_m</span>.<span class="ident">get_many</span>::<span class="op"><</span><span class="ident">OsString</span><span class="op">></span>(<span class="string">""</span>).<span class="ident">unwrap</span>().<span class="ident">collect</span>();
|
||
<span class="macro">assert_eq!</span>(<span class="ident">external</span>, <span class="string">"subcmd"</span>);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">ext_args</span>, [<span class="string">"--option"</span>, <span class="string">"value"</span>, <span class="string">"-fff"</span>, <span class="string">"--flag"</span>]);
|
||
},
|
||
<span class="kw">_</span> => {},
|
||
}</code></pre></div>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Assume there is an external subcommand named "subcmd"</span>
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">external_subcommand_value_parser</span>(<span class="macro">value_parser!</span>(<span class="ident">String</span>))
|
||
.<span class="ident">get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"myprog"</span>, <span class="string">"subcmd"</span>, <span class="string">"--option"</span>, <span class="string">"value"</span>, <span class="string">"-fff"</span>, <span class="string">"--flag"</span>
|
||
]);
|
||
|
||
<span class="comment">// All trailing arguments will be stored under the subcommand's sub-matches using an empty</span>
|
||
<span class="comment">// string argument name</span>
|
||
<span class="kw">match</span> <span class="ident">m</span>.<span class="ident">subcommand</span>() {
|
||
<span class="prelude-val">Some</span>((<span class="ident">external</span>, <span class="ident">ext_m</span>)) => {
|
||
<span class="kw">let</span> <span class="ident">ext_args</span>: <span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span> <span class="op">=</span> <span class="ident">ext_m</span>.<span class="ident">get_many</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">""</span>).<span class="ident">unwrap</span>().<span class="ident">collect</span>();
|
||
<span class="macro">assert_eq!</span>(<span class="ident">external</span>, <span class="string">"subcmd"</span>);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">ext_args</span>, [<span class="string">"--option"</span>, <span class="string">"value"</span>, <span class="string">"-fff"</span>, <span class="string">"--flag"</span>]);
|
||
},
|
||
<span class="kw">_</span> => {},
|
||
}</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.args_conflicts_with_subcommands" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2836-2842">source</a></span><h4 class="code-header">pub fn <a href="#method.args_conflicts_with_subcommands" class="fnname">args_conflicts_with_subcommands</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Specifies that use of an argument prevents the use of <a href="builder/struct.Command.html#method.subcommand"><code>subcommands</code></a>.</p>
|
||
<p>By default <code>clap</code> allows arguments between subcommands such
|
||
as <code><cmd> [cmd_args] <subcmd> [subcmd_args] <subsubcmd> [subsubcmd_args]</code>.</p>
|
||
<p>This setting disables that functionality and says that arguments can
|
||
only follow the <em>final</em> subcommand. For instance using this setting
|
||
makes only the following invocations possible:</p>
|
||
<ul>
|
||
<li><code><cmd> <subcmd> <subsubcmd> [subsubcmd_args]</code></li>
|
||
<li><code><cmd> <subcmd> [subcmd_args]</code></li>
|
||
<li><code><cmd> [cmd_args]</code></li>
|
||
</ul>
|
||
<h5 id="examples-75"><a href="#examples-75">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">args_conflicts_with_subcommands</span>(<span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.subcommand_precedence_over_arg" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2895-2901">source</a></span><h4 class="code-header">pub fn <a href="#method.subcommand_precedence_over_arg" class="fnname">subcommand_precedence_over_arg</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Prevent subcommands from being consumed as an arguments value.</p>
|
||
<p>By default, if an option taking multiple values is followed by a subcommand, the
|
||
subcommand will be parsed as another value.</p>
|
||
<div class="example-wrap"><pre class="language-text"><code>cmd --foo val1 val2 subcommand
|
||
--------- ----------
|
||
values another value</code></pre></div>
|
||
<p>This setting instructs the parser to stop when encountering a subcommand instead of
|
||
greedily consuming arguments.</p>
|
||
<div class="example-wrap"><pre class="language-text"><code>cmd --foo val1 val2 subcommand
|
||
--------- ----------
|
||
values subcommand</code></pre></div><h5 id="examples-76"><a href="#examples-76">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"cmd"</span>).<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"sub"</span>)).<span class="ident">arg</span>(
|
||
<span class="ident">Arg::new</span>(<span class="string">"arg"</span>)
|
||
.<span class="ident">long</span>(<span class="string">"arg"</span>)
|
||
.<span class="ident">num_args</span>(<span class="number">1</span>..)
|
||
.<span class="ident">action</span>(<span class="ident">ArgAction::Set</span>),
|
||
);
|
||
|
||
<span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">cmd</span>
|
||
.<span class="ident">clone</span>()
|
||
.<span class="ident">try_get_matches_from</span>(<span class="kw-2">&</span>[<span class="string">"cmd"</span>, <span class="string">"--arg"</span>, <span class="string">"1"</span>, <span class="string">"2"</span>, <span class="string">"3"</span>, <span class="string">"sub"</span>])
|
||
.<span class="ident">unwrap</span>();
|
||
<span class="macro">assert_eq!</span>(
|
||
<span class="ident">matches</span>.<span class="ident">get_many</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"arg"</span>).<span class="ident">unwrap</span>().<span class="ident">collect</span>::<span class="op"><</span><span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span><span class="op">></span>(),
|
||
<span class="kw-2">&</span>[<span class="string">"1"</span>, <span class="string">"2"</span>, <span class="string">"3"</span>, <span class="string">"sub"</span>]
|
||
);
|
||
<span class="macro">assert!</span>(<span class="ident">matches</span>.<span class="ident">subcommand_matches</span>(<span class="string">"sub"</span>).<span class="ident">is_none</span>());
|
||
|
||
<span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">cmd</span>
|
||
.<span class="ident">subcommand_precedence_over_arg</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">try_get_matches_from</span>(<span class="kw-2">&</span>[<span class="string">"cmd"</span>, <span class="string">"--arg"</span>, <span class="string">"1"</span>, <span class="string">"2"</span>, <span class="string">"3"</span>, <span class="string">"sub"</span>])
|
||
.<span class="ident">unwrap</span>();
|
||
<span class="macro">assert_eq!</span>(
|
||
<span class="ident">matches</span>.<span class="ident">get_many</span>::<span class="op"><</span><span class="ident">String</span><span class="op">></span>(<span class="string">"arg"</span>).<span class="ident">unwrap</span>().<span class="ident">collect</span>::<span class="op"><</span><span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span><span class="op">></span>(),
|
||
<span class="kw-2">&</span>[<span class="string">"1"</span>, <span class="string">"2"</span>, <span class="string">"3"</span>]
|
||
);
|
||
<span class="macro">assert!</span>(<span class="ident">matches</span>.<span class="ident">subcommand_matches</span>(<span class="string">"sub"</span>).<span class="ident">is_some</span>());</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.subcommand_negates_reqs" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#2948-2954">source</a></span><h4 class="code-header">pub fn <a href="#method.subcommand_negates_reqs" class="fnname">subcommand_negates_reqs</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Allows <a href="builder/struct.Command.html#method.subcommand"><code>subcommands</code></a> to override all requirements of the parent command.</p>
|
||
<p>For example, if you had a subcommand or top level application with a required argument
|
||
that is only required as long as there is no subcommand present,
|
||
using this setting would allow you to set those arguments to <a href="builder/struct.Arg.html#method.required"><code>Arg::required(true)</code></a>
|
||
and yet receive no error so long as the user uses a valid subcommand instead.</p>
|
||
<p><strong>NOTE:</strong> This defaults to false (using subcommand does <em>not</em> negate requirements)</p>
|
||
<h5 id="examples-77"><a href="#examples-77">Examples</a></h5>
|
||
<p>This first example shows that it is an error to not use a required argument</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand_negates_reqs</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"opt"</span>).<span class="ident">required</span>(<span class="bool-val">true</span>))
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>))
|
||
.<span class="ident">try_get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"myprog"</span>
|
||
]);
|
||
<span class="macro">assert!</span>(<span class="ident">err</span>.<span class="ident">is_err</span>());
|
||
<span class="macro">assert_eq!</span>(<span class="ident">err</span>.<span class="ident">unwrap_err</span>().<span class="ident">kind</span>(), <span class="ident">ErrorKind::MissingRequiredArgument</span>);</code></pre></div>
|
||
<p>This next example shows that it is no longer error to not use a required argument if a
|
||
valid subcommand is used.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">noerr</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand_negates_reqs</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="string">"opt"</span>).<span class="ident">required</span>(<span class="bool-val">true</span>))
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"test"</span>))
|
||
.<span class="ident">try_get_matches_from</span>(<span class="macro">vec!</span>[
|
||
<span class="string">"myprog"</span>, <span class="string">"test"</span>
|
||
]);
|
||
<span class="macro">assert!</span>(<span class="ident">noerr</span>.<span class="ident">is_ok</span>());</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.multicall" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3072-3078">source</a></span><h4 class="code-header">pub fn <a href="#method.multicall" class="fnname">multicall</a>(self, yes: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class="docblock"><p>Multiple-personality program dispatched on the binary name (<code>argv[0]</code>)</p>
|
||
<p>A “multicall” executable is a single executable
|
||
that contains a variety of applets,
|
||
and decides which applet to run based on the name of the file.
|
||
The executable can be called from different names by creating hard links
|
||
or symbolic links to it.</p>
|
||
<p>This is desirable for:</p>
|
||
<ul>
|
||
<li>Easy distribution, a single binary that can install hardlinks to access the different
|
||
personalities.</li>
|
||
<li>Minimal binary size by sharing common code (e.g. standard library, clap)</li>
|
||
<li>Custom shells or REPLs where there isn’t a single top-level command</li>
|
||
</ul>
|
||
<p>Setting <code>multicall</code> will cause</p>
|
||
<ul>
|
||
<li><code>argv[0]</code> to be stripped to the base name and parsed as the first argument, as if
|
||
<a href="builder/struct.Command.html#method.no_binary_name" title="Command::no_binary_name"><code>Command::no_binary_name</code></a> was set.</li>
|
||
<li>Help and errors to report subcommands as if they were the top-level command</li>
|
||
</ul>
|
||
<p>When the subcommand is not present, there are several strategies you may employ, depending
|
||
on your needs:</p>
|
||
<ul>
|
||
<li>Let the error percolate up normally</li>
|
||
<li>Print a specialized error message using the
|
||
<a href="error/struct.Error.html#method.context" title="crate::Error::context"><code>Error::context</code></a></li>
|
||
<li>Print the <a href="builder/struct.Command.html#method.write_help" title="Command::write_help">help</a> but this might be ambiguous</li>
|
||
<li>Disable <code>multicall</code> and re-parse it</li>
|
||
<li>Disable <code>multicall</code> and re-parse it with a specific subcommand</li>
|
||
</ul>
|
||
<p>When detecting the error condition, the <a href="error/enum.ErrorKind.html" title="ErrorKind"><code>ErrorKind</code></a> isn’t sufficient as a sub-subcommand
|
||
might report the same error. Enable
|
||
<a href="builder/struct.Command.html#method.allow_external_subcommands" title="Command::allow_external_subcommands"><code>allow_external_subcommands</code></a> if you want to specifically
|
||
get the unrecognized binary name.</p>
|
||
<p><strong>NOTE:</strong> Multicall can’t be used with <a href="builder/struct.Command.html#method.no_binary_name"><code>no_binary_name</code></a> since they interpret
|
||
the command name in incompatible ways.</p>
|
||
<p><strong>NOTE:</strong> The multicall command cannot have arguments.</p>
|
||
<p><strong>NOTE:</strong> Applets are slightly semantically different from subcommands,
|
||
so it’s recommended to use <a href="builder/struct.Command.html#method.subcommand_help_heading"><code>Command::subcommand_help_heading</code></a> and
|
||
<a href="builder/struct.Command.html#method.subcommand_value_name"><code>Command::subcommand_value_name</code></a> to change the descriptive text as above.</p>
|
||
<h5 id="examples-78"><a href="#examples-78">Examples</a></h5>
|
||
<p><code>hostname</code> is an example of a multicall executable.
|
||
Both <code>hostname</code> and <code>dnsdomainname</code> are provided by the same executable
|
||
and which behaviour to use is based on the executable file name.</p>
|
||
<p>This is desirable when the executable has a primary purpose
|
||
but there is related functionality that would be convenient to provide
|
||
and implement it to be in the same executable.</p>
|
||
<p>The name of the cmd is essentially unused
|
||
and may be the same as the name of a subcommand.</p>
|
||
<p>The names of the immediate subcommands of the Command
|
||
are matched against the basename of the first argument,
|
||
which is conventionally the path of the executable.</p>
|
||
<p>This does not allow the subcommand to be passed as the first non-path argument.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"hostname"</span>)
|
||
.<span class="ident">multicall</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"hostname"</span>))
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"dnsdomainname"</span>));
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">try_get_matches_from_mut</span>(<span class="kw-2">&</span>[<span class="string">"/usr/bin/hostname"</span>, <span class="string">"dnsdomainname"</span>]);
|
||
<span class="macro">assert!</span>(<span class="ident">m</span>.<span class="ident">is_err</span>());
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">unwrap_err</span>().<span class="ident">kind</span>(), <span class="ident">ErrorKind::UnknownArgument</span>);
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">get_matches_from</span>(<span class="kw-2">&</span>[<span class="string">"/usr/bin/dnsdomainname"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"dnsdomainname"</span>));</code></pre></div>
|
||
<p>Busybox is another common example of a multicall executable
|
||
with a subcommmand for each applet that can be run directly,
|
||
e.g. with the <code>cat</code> applet being run by running <code>busybox cat</code>,
|
||
or with <code>cat</code> as a link to the <code>busybox</code> binary.</p>
|
||
<p>This is desirable when the launcher program has additional options
|
||
or it is useful to run the applet without installing a symlink
|
||
e.g. to test the applet without installing it
|
||
or there may already be a command of that name installed.</p>
|
||
<p>To make an applet usable as both a multicall link and a subcommand
|
||
the subcommands must be defined both in the top-level Command
|
||
and as subcommands of the “main” applet.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">fn</span> <span class="ident">applet_commands</span>() -> [<span class="ident">Command</span>; <span class="number">2</span>] {
|
||
[<span class="ident">Command::new</span>(<span class="string">"true"</span>), <span class="ident">Command::new</span>(<span class="string">"false"</span>)]
|
||
}
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">Command::new</span>(<span class="string">"busybox"</span>)
|
||
.<span class="ident">multicall</span>(<span class="bool-val">true</span>)
|
||
.<span class="ident">subcommand</span>(
|
||
<span class="ident">Command::new</span>(<span class="string">"busybox"</span>)
|
||
.<span class="ident">subcommand_value_name</span>(<span class="string">"APPLET"</span>)
|
||
.<span class="ident">subcommand_help_heading</span>(<span class="string">"APPLETS"</span>)
|
||
.<span class="ident">subcommands</span>(<span class="ident">applet_commands</span>()),
|
||
)
|
||
.<span class="ident">subcommands</span>(<span class="ident">applet_commands</span>());
|
||
<span class="comment">// When called from the executable's canonical name</span>
|
||
<span class="comment">// its applets can be matched as subcommands.</span>
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">try_get_matches_from_mut</span>(<span class="kw-2">&</span>[<span class="string">"/usr/bin/busybox"</span>, <span class="string">"true"</span>]).<span class="ident">unwrap</span>();
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"busybox"</span>));
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand</span>().<span class="ident">unwrap</span>().<span class="number">1</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"true"</span>));
|
||
<span class="comment">// When called from a link named after an applet that applet is matched.</span>
|
||
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">get_matches_from</span>(<span class="kw-2">&</span>[<span class="string">"/usr/bin/true"</span>]);
|
||
<span class="macro">assert_eq!</span>(<span class="ident">m</span>.<span class="ident">subcommand_name</span>(), <span class="prelude-val">Some</span>(<span class="string">"true"</span>));</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.subcommand_value_name" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3139-3142">source</a></span><h4 class="code-header">pub fn <a href="#method.subcommand_value_name" class="fnname">subcommand_value_name</a>(self, value_name: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets the value name used for subcommands when printing usage and help.</p>
|
||
<p>By default, this is “COMMAND”.</p>
|
||
<p>See also <a href="builder/struct.Command.html#method.subcommand_help_heading" title="Command::subcommand_help_heading"><code>Command::subcommand_help_heading</code></a></p>
|
||
<h5 id="examples-79"><a href="#examples-79">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"sub1"</span>))
|
||
.<span class="ident">print_help</span>()</code></pre></div>
|
||
<p>will produce</p>
|
||
<div class="example-wrap"><pre class="language-text"><code>myprog
|
||
|
||
Usage: myprog [COMMAND]
|
||
|
||
Commands:
|
||
help Print this message or the help of the given subcommand(s)
|
||
sub1
|
||
|
||
Options:
|
||
-h, --help Print help information
|
||
-V, --version Print version information</code></pre></div>
|
||
<p>but usage of <code>subcommand_value_name</code></p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"sub1"</span>))
|
||
.<span class="ident">subcommand_value_name</span>(<span class="string">"THING"</span>)
|
||
.<span class="ident">print_help</span>()</code></pre></div>
|
||
<p>will produce</p>
|
||
<div class="example-wrap"><pre class="language-text"><code>myprog
|
||
|
||
Usage: myprog [THING]
|
||
|
||
Commands:
|
||
help Print this message or the help of the given subcommand(s)
|
||
sub1
|
||
|
||
Options:
|
||
-h, --help Print help information
|
||
-V, --version Print version information</code></pre></div></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.subcommand_help_heading" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3203-3206">source</a></span><h4 class="code-header">pub fn <a href="#method.subcommand_help_heading" class="fnname">subcommand_help_heading</a>(self, heading: impl <a class="trait" href="builder/trait.IntoResettable.html" title="trait clap::builder::IntoResettable">IntoResettable</a><<a class="struct" href="builder/struct.Str.html" title="struct clap::builder::Str">Str</a>>) -> Self</h4></section></summary><div class="docblock"><p>Sets the help heading used for subcommands when printing usage and help.</p>
|
||
<p>By default, this is “Commands”.</p>
|
||
<p>See also <a href="builder/struct.Command.html#method.subcommand_value_name" title="Command::subcommand_value_name"><code>Command::subcommand_value_name</code></a></p>
|
||
<h5 id="examples-80"><a href="#examples-80">Examples</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"sub1"</span>))
|
||
.<span class="ident">print_help</span>()</code></pre></div>
|
||
<p>will produce</p>
|
||
<div class="example-wrap"><pre class="language-text"><code>myprog
|
||
|
||
Usage: myprog [COMMAND]
|
||
|
||
Commands:
|
||
help Print this message or the help of the given subcommand(s)
|
||
sub1
|
||
|
||
Options:
|
||
-h, --help Print help information
|
||
-V, --version Print version information</code></pre></div>
|
||
<p>but usage of <code>subcommand_help_heading</code></p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">Command::new</span>(<span class="string">"myprog"</span>)
|
||
.<span class="ident">subcommand</span>(<span class="ident">Command::new</span>(<span class="string">"sub1"</span>))
|
||
.<span class="ident">subcommand_help_heading</span>(<span class="string">"Things"</span>)
|
||
.<span class="ident">print_help</span>()</code></pre></div>
|
||
<p>will produce</p>
|
||
<div class="example-wrap"><pre class="language-text"><code>myprog
|
||
|
||
Usage: myprog [COMMAND]
|
||
|
||
Things:
|
||
help Print this message or the help of the given subcommand(s)
|
||
sub1
|
||
|
||
Options:
|
||
-h, --help Print help information
|
||
-V, --version Print version information</code></pre></div></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Command-4" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3210-3732">source</a></span><a href="#impl-Command-4" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="docblock"><h4 id="reflection"><a href="#reflection">Reflection</a></h4></div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_display_name" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3219-3221">source</a></span><h4 class="code-header">pub fn <a href="#method.get_display_name" class="fnname">get_display_name</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Get the name of the binary.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_bin_name" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3225-3227">source</a></span><h4 class="code-header">pub fn <a href="#method.get_bin_name" class="fnname">get_bin_name</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Get the name of the binary.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_bin_name" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3230-3232">source</a></span><h4 class="code-header">pub fn <a href="#method.set_bin_name" class="fnname">set_bin_name</a>(&mut self, name: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="https://doc.rust-lang.org/1.64.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>)</h4></section></summary><div class="docblock"><p>Set binary name. Uses <code>&mut self</code> instead of <code>self</code>.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_name" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3236-3238">source</a></span><h4 class="code-header">pub fn <a href="#method.get_name" class="fnname">get_name</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get the name of the cmd.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_version" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3248-3250">source</a></span><h4 class="code-header">pub fn <a href="#method.get_version" class="fnname">get_version</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Get the version of the cmd.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_long_version" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3254-3256">source</a></span><h4 class="code-header">pub fn <a href="#method.get_long_version" class="fnname">get_long_version</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Get the long version of the cmd.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_author" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3260-3262">source</a></span><h4 class="code-header">pub fn <a href="#method.get_author" class="fnname">get_author</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Get the authors of the cmd.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_short_flag" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3266-3268">source</a></span><h4 class="code-header">pub fn <a href="#method.get_short_flag" class="fnname">get_short_flag</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.char.html">char</a>></h4></section></summary><div class="docblock"><p>Get the short flag of the subcommand.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_long_flag" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3272-3274">source</a></span><h4 class="code-header">pub fn <a href="#method.get_long_flag" class="fnname">get_long_flag</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Get the long flag of the subcommand.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_about" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3280-3282">source</a></span><h4 class="code-header">pub fn <a href="#method.get_about" class="fnname">get_about</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>></h4></section></summary><div class="docblock"><p>Get the help message specified via <a href="builder/struct.Command.html#method.about"><code>Command::about</code></a>.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_long_about" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3288-3290">source</a></span><h4 class="code-header">pub fn <a href="#method.get_long_about" class="fnname">get_long_about</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>></h4></section></summary><div class="docblock"><p>Get the help message specified via <a href="builder/struct.Command.html#method.long_about"><code>Command::long_about</code></a>.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_next_help_heading" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3296-3298">source</a></span><h4 class="code-header">pub fn <a href="#method.get_next_help_heading" class="fnname">get_next_help_heading</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Get the custom section heading specified via <a href="builder/struct.Command.html#method.next_help_heading" title="Command::next_help_heading"><code>Command::next_help_heading</code></a>.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_visible_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3302-3307">source</a></span><h4 class="code-header">pub fn <a href="#method.get_visible_aliases" class="fnname">get_visible_aliases</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>> + '_</h4></section></summary><div class="docblock"><p>Iterate through the <em>visible</em> aliases for this subcommand.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_visible_short_flag_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3311-3316">source</a></span><h4 class="code-header">pub fn <a href="#method.get_visible_short_flag_aliases" class="fnname">get_visible_short_flag_aliases</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.char.html">char</a>> + '_</h4></section></summary><div class="docblock"><p>Iterate through the <em>visible</em> short aliases for this subcommand.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_visible_long_flag_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3320-3325">source</a></span><h4 class="code-header">pub fn <a href="#method.get_visible_long_flag_aliases" class="fnname">get_visible_long_flag_aliases</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>> + '_</h4></section></summary><div class="docblock"><p>Iterate through the <em>visible</em> long aliases for this subcommand.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_all_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3329-3331">source</a></span><h4 class="code-header">pub fn <a href="#method.get_all_aliases" class="fnname">get_all_aliases</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>> + '_</h4></section></summary><div class="docblock"><p>Iterate through the set of <em>all</em> the aliases for this subcommand, both visible and hidden.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_all_short_flag_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3335-3337">source</a></span><h4 class="code-header">pub fn <a href="#method.get_all_short_flag_aliases" class="fnname">get_all_short_flag_aliases</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.char.html">char</a>> + '_</h4></section></summary><div class="docblock"><p>Iterate through the set of <em>all</em> the short aliases for this subcommand, both visible and hidden.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_all_long_flag_aliases" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3341-3343">source</a></span><h4 class="code-header">pub fn <a href="#method.get_all_long_flag_aliases" class="fnname">get_all_long_flag_aliases</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>> + '_</h4></section></summary><div class="docblock"><p>Iterate through the set of <em>all</em> the long aliases for this subcommand, both visible and hidden.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_color" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3351-3368">source</a></span><h4 class="code-header">pub fn <a href="#method.get_color" class="fnname">get_color</a>(&self) -> <a class="enum" href="enum.ColorChoice.html" title="enum clap::ColorChoice">ColorChoice</a></h4></section></summary><div class="docblock"><p>Should we color the output?</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_subcommands" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3372-3374">source</a></span><h4 class="code-header">pub fn <a href="#method.get_subcommands" class="fnname">get_subcommands</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &<a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a>></h4></section></summary><div class="docblock"><p>Iterate through the set of subcommands, getting a reference to each.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_subcommands_mut" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3378-3380">source</a></span><h4 class="code-header">pub fn <a href="#method.get_subcommands_mut" class="fnname">get_subcommands_mut</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &mut <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a>></h4></section></summary><div class="docblock"><p>Iterate through the set of subcommands, getting a mutable reference to each.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_subcommands" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3384-3386">source</a></span><h4 class="code-header">pub fn <a href="#method.has_subcommands" class="fnname">has_subcommands</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if this <code>Command</code> has subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_subcommand_help_heading" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3390-3392">source</a></span><h4 class="code-header">pub fn <a href="#method.get_subcommand_help_heading" class="fnname">get_subcommand_help_heading</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Returns the help heading for listing subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_subcommand_value_name" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3396-3398">source</a></span><h4 class="code-header">pub fn <a href="#method.get_subcommand_value_name" class="fnname">get_subcommand_value_name</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Returns the subcommand value name.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_before_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3402-3404">source</a></span><h4 class="code-header">pub fn <a href="#method.get_before_help" class="fnname">get_before_help</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>></h4></section></summary><div class="docblock"><p>Returns the help heading for listing subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_before_long_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3408-3410">source</a></span><h4 class="code-header">pub fn <a href="#method.get_before_long_help" class="fnname">get_before_long_help</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>></h4></section></summary><div class="docblock"><p>Returns the help heading for listing subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_after_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3414-3416">source</a></span><h4 class="code-header">pub fn <a href="#method.get_after_help" class="fnname">get_after_help</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>></h4></section></summary><div class="docblock"><p>Returns the help heading for listing subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_after_long_help" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3420-3422">source</a></span><h4 class="code-header">pub fn <a href="#method.get_after_long_help" class="fnname">get_after_long_help</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="builder/struct.StyledStr.html" title="struct clap::builder::StyledStr">StyledStr</a>></h4></section></summary><div class="docblock"><p>Returns the help heading for listing subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_subcommand" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3428-3431">source</a></span><h4 class="code-header">pub fn <a href="#method.find_subcommand" class="fnname">find_subcommand</a>(&self, name: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="struct" href="https://doc.rust-lang.org/1.64.0/std/ffi/os_str/struct.OsStr.html" title="struct std::ffi::os_str::OsStr">OsStr</a>>) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a>></h4></section></summary><div class="docblock"><p>Find subcommand such that its name or one of aliases equals <code>name</code>.</p>
|
||
<p>This does not recurse through subcommands of subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_subcommand_mut" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3438-3444">source</a></span><h4 class="code-header">pub fn <a href="#method.find_subcommand_mut" class="fnname">find_subcommand_mut</a>(<br> &mut self,<br> name: impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="struct" href="https://doc.rust-lang.org/1.64.0/std/ffi/os_str/struct.OsStr.html" title="struct std::ffi::os_str::OsStr">OsStr</a>><br>) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&mut <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a>></h4></section></summary><div class="docblock"><p>Find subcommand such that its name or one of aliases equals <code>name</code>, returning
|
||
a mutable reference to the subcommand.</p>
|
||
<p>This does not recurse through subcommands of subcommands.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_groups" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3448-3450">source</a></span><h4 class="code-header">pub fn <a href="#method.get_groups" class="fnname">get_groups</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &<a class="struct" href="builder/struct.ArgGroup.html" title="struct clap::builder::ArgGroup">ArgGroup</a>></h4></section></summary><div class="docblock"><p>Iterate through the set of groups.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_arguments" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3454-3456">source</a></span><h4 class="code-header">pub fn <a href="#method.get_arguments" class="fnname">get_arguments</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &<a class="struct" href="builder/struct.Arg.html" title="struct clap::builder::Arg">Arg</a>></h4></section></summary><div class="docblock"><p>Iterate through the set of arguments.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_positionals" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3460-3462">source</a></span><h4 class="code-header">pub fn <a href="#method.get_positionals" class="fnname">get_positionals</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &<a class="struct" href="builder/struct.Arg.html" title="struct clap::builder::Arg">Arg</a>></h4></section></summary><div class="docblock"><p>Iterate through the <em>positionals</em> arguments.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_opts" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3465-3468">source</a></span><h4 class="code-header">pub fn <a href="#method.get_opts" class="fnname">get_opts</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &<a class="struct" href="builder/struct.Arg.html" title="struct clap::builder::Arg">Arg</a>></h4></section></summary><div class="docblock"><p>Iterate through the <em>options</em>.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_arg_conflicts_with" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3479-3500">source</a></span><h4 class="code-header">pub fn <a href="#method.get_arg_conflicts_with" class="fnname">get_arg_conflicts_with</a>(&self, arg: &<a class="struct" href="builder/struct.Arg.html" title="struct clap::builder::Arg">Arg</a>) -> <a class="struct" href="https://doc.rust-lang.org/1.64.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><&<a class="struct" href="builder/struct.Arg.html" title="struct clap::builder::Arg">Arg</a>></h4></section></summary><div class="docblock"><p>Get a list of all arguments the given argument conflicts with.</p>
|
||
<p>If the provided argument is declared as global, the conflicts will be determined
|
||
based on the propagation rules of global arguments.</p>
|
||
<h6 id="panics-9"><a href="#panics-9">Panics</a></h6>
|
||
<p>If the given arg contains a conflict with an argument that is unknown to
|
||
this <code>Command</code>.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_no_binary_name_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3561-3563">source</a></span><h4 class="code-header">pub fn <a href="#method.is_no_binary_name_set" class="fnname">is_no_binary_name_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.no_binary_name" title="Command::no_binary_name"><code>Command::no_binary_name</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_dont_delimit_trailing_values_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3571-3573">source</a></span><h4 class="code-header">pub fn <a href="#method.is_dont_delimit_trailing_values_set" class="fnname">is_dont_delimit_trailing_values_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.dont_delimit_trailing_values" title="Command::dont_delimit_trailing_values"><code>Command::dont_delimit_trailing_values</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_disable_version_flag_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3576-3579">source</a></span><h4 class="code-header">pub fn <a href="#method.is_disable_version_flag_set" class="fnname">is_disable_version_flag_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.disable_version_flag" title="Command::disable_version_flag"><code>Command::disable_version_flag</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_propagate_version_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3582-3584">source</a></span><h4 class="code-header">pub fn <a href="#method.is_propagate_version_set" class="fnname">is_propagate_version_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.propagate_version" title="Command::propagate_version"><code>Command::propagate_version</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_next_line_help_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3587-3589">source</a></span><h4 class="code-header">pub fn <a href="#method.is_next_line_help_set" class="fnname">is_next_line_help_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.next_line_help" title="Command::next_line_help"><code>Command::next_line_help</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_disable_help_flag_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3592-3594">source</a></span><h4 class="code-header">pub fn <a href="#method.is_disable_help_flag_set" class="fnname">is_disable_help_flag_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.disable_help_flag" title="Command::disable_help_flag"><code>Command::disable_help_flag</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_disable_help_subcommand_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3597-3599">source</a></span><h4 class="code-header">pub fn <a href="#method.is_disable_help_subcommand_set" class="fnname">is_disable_help_subcommand_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.disable_help_subcommand" title="Command::disable_help_subcommand"><code>Command::disable_help_subcommand</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_disable_colored_help_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3602-3604">source</a></span><h4 class="code-header">pub fn <a href="#method.is_disable_colored_help_set" class="fnname">is_disable_colored_help_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.disable_colored_help" title="Command::disable_colored_help"><code>Command::disable_colored_help</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_arg_required_else_help_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3632-3634">source</a></span><h4 class="code-header">pub fn <a href="#method.is_arg_required_else_help_set" class="fnname">is_arg_required_else_help_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.arg_required_else_help" title="Command::arg_required_else_help"><code>Command::arg_required_else_help</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_allow_missing_positional_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3670-3672">source</a></span><h4 class="code-header">pub fn <a href="#method.is_allow_missing_positional_set" class="fnname">is_allow_missing_positional_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.allow_missing_positional" title="Command::allow_missing_positional"><code>Command::allow_missing_positional</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_hide_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3675-3677">source</a></span><h4 class="code-header">pub fn <a href="#method.is_hide_set" class="fnname">is_hide_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.hide" title="Command::hide"><code>Command::hide</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_subcommand_required_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3680-3682">source</a></span><h4 class="code-header">pub fn <a href="#method.is_subcommand_required_set" class="fnname">is_subcommand_required_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.subcommand_required" title="Command::subcommand_required"><code>Command::subcommand_required</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_allow_external_subcommands_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3685-3687">source</a></span><h4 class="code-header">pub fn <a href="#method.is_allow_external_subcommands_set" class="fnname">is_allow_external_subcommands_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.allow_external_subcommands" title="Command::allow_external_subcommands"><code>Command::allow_external_subcommands</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_external_subcommand_value_parser" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3699-3706">source</a></span><h4 class="code-header">pub fn <a href="#method.get_external_subcommand_value_parser" class="fnname">get_external_subcommand_value_parser</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="builder/struct.ValueParser.html" title="struct clap::builder::ValueParser">ValueParser</a>></h4></section></summary><div class="docblock"><p>Configured parser for values passed to an external subcommand</p>
|
||
<h5 id="example"><a href="#example">Example</a></h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="ident">cmd</span> <span class="op">=</span> <span class="ident">clap::Command::new</span>(<span class="string">"raw"</span>)
|
||
.<span class="ident">external_subcommand_value_parser</span>(<span class="macro">clap::value_parser!</span>(<span class="ident">String</span>));
|
||
<span class="kw">let</span> <span class="ident">value_parser</span> <span class="op">=</span> <span class="ident">cmd</span>.<span class="ident">get_external_subcommand_value_parser</span>();
|
||
<span class="macro">println!</span>(<span class="string">"{:?}"</span>, <span class="ident">value_parser</span>);</code></pre></div>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_args_conflicts_with_subcommands_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3709-3711">source</a></span><h4 class="code-header">pub fn <a href="#method.is_args_conflicts_with_subcommands_set" class="fnname">is_args_conflicts_with_subcommands_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.args_conflicts_with_subcommands" title="Command::args_conflicts_with_subcommands"><code>Command::args_conflicts_with_subcommands</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_subcommand_precedence_over_arg_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3719-3721">source</a></span><h4 class="code-header">pub fn <a href="#method.is_subcommand_precedence_over_arg_set" class="fnname">is_subcommand_precedence_over_arg_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.subcommand_precedence_over_arg" title="Command::subcommand_precedence_over_arg"><code>Command::subcommand_precedence_over_arg</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_subcommand_negates_reqs_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3724-3726">source</a></span><h4 class="code-header">pub fn <a href="#method.is_subcommand_negates_reqs_set" class="fnname">is_subcommand_negates_reqs_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.subcommand_negates_reqs" title="Command::subcommand_negates_reqs"><code>Command::subcommand_negates_reqs</code></a> is set</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_multicall_set" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3729-3731">source</a></span><h4 class="code-header">pub fn <a href="#method.is_multicall_set" class="fnname">is_multicall_set</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Report whether <a href="builder/struct.Command.html#method.multicall" title="Command::multicall"><code>Command::multicall</code></a> is set</p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Command-5" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3735-4362">source</a></span><a href="#impl-Command-5" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#3816-3819">source</a></span><h4 class="code-header">pub fn <a href="#method.build" class="fnname">build</a>(&mut self)</h4></section></summary><div class="docblock"><p>Prepare for introspecting on all included <a href="builder/struct.Command.html" title="Command"><code>Command</code></a>s</p>
|
||
<p>Call this on the top-level <a href="builder/struct.Command.html" title="Command"><code>Command</code></a> when done building and before reading state for
|
||
cases like completions, custom help output, etc.</p>
|
||
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#70">source</a></span><a href="#impl-Clone-for-Command" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#70">source</a></span><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&self) -> <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h4></section></summary><div class='docblock'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html#method.clone_from" class="fnname">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#70">source</a></span><a href="#impl-Debug-for-Command" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#70">source</a></span><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/1.64.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#4623-4665">source</a></span><a href="#impl-Default-for-Command" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#4624-4664">source</a></span><a href="#method.default" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/default/trait.Default.html#tymethod.default" class="fnname">default</a>() -> Self</h4></section></summary><div class='docblock'><p>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/1.64.0/core/default/trait.Default.html#tymethod.default">Read more</a></p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#4681-4685">source</a></span><a href="#impl-Display-for-Command" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#4682-4684">source</a></span><a href="#method.fmt-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Display.html#tymethod.fmt" class="fnname">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/1.64.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3C%26Command%3E-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#4675-4679">source</a></span><a href="#impl-From%3C%26Command%3E-for-Command" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><&<a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a>> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#4676-4678">source</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(cmd: &<a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a>) -> Self</h4></section></summary><div class='docblock'><p>Converts to this type from the input type.</p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Index%3C%26Id%3E-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#4667-4673">source</a></span><a href="#impl-Index%3C%26Id%3E-for-Command" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/ops/index/trait.Index.html" title="trait core::ops::index::Index">Index</a><&<a class="struct" href="struct.Id.html" title="struct clap::Id">Id</a>> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.64.0/core/ops/index/trait.Index.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="builder/struct.Arg.html" title="struct clap::builder::Arg">Arg</a></h4></section></summary><div class='docblock'><p>The returned type after indexing.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.index" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="../src/clap/builder/command.rs.html#4670-4672">source</a></span><a href="#method.index" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/ops/index/trait.Index.html#tymethod.index" class="fnname">index</a>(&self, key: &<a class="struct" href="struct.Id.html" title="struct clap::Id">Id</a>) -> &Self::<a class="associatedtype" href="https://doc.rust-lang.org/1.64.0/core/ops/index/trait.Index.html#associatedtype.Output" title="type core::ops::index::Index::Output">Output</a></h4></section></summary><div class='docblock'><p>Performs the indexing (<code>container[index]</code>) operation. <a href="https://doc.rust-lang.org/1.64.0/core/ops/index/trait.Index.html#tymethod.index">Read more</a></p>
|
||
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Command" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Command" class="anchor"></a><h3 class="code-header in-band">impl !<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section><section id="impl-Send-for-Command" class="impl has-srclink"><a href="#impl-Send-for-Command" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section><section id="impl-Sync-for-Command" class="impl has-srclink"><a href="#impl-Sync-for-Command" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section><section id="impl-Unpin-for-Command" class="impl has-srclink"><a href="#impl-Unpin-for-Command" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section><section id="impl-UnwindSafe-for-Command" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Command" class="anchor"></a><h3 class="code-header in-band">impl !<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="builder/struct.Command.html" title="struct clap::builder::Command">Command</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/any.rs.html#203">source</a></span><a href="#impl-Any-for-Command" class="anchor"></a><h3 class="code-header in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/any.rs.html#204">source</a></span><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.64.0/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/borrow.rs.html#209">source</a></span><a href="#impl-Borrow%3CT%3E-for-Command" class="anchor"></a><h3 class="code-header in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T <span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/borrow.rs.html#211">source</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/borrow.rs.html#218">source</a></span><a href="#impl-BorrowMut%3CT%3E-for-Command" class="anchor"></a><h3 class="code-header in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T <span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/borrow.rs.html#219">source</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#557">source</a></span><a href="#impl-From%3CT%3E-for-Command" class="anchor"></a><h3 class="code-header in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#559">source</a></span><a href="#method.from-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#541">source</a></span><a href="#impl-Into%3CU%3E-for-Command" class="anchor"></a><h3 class="code-header in-band">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>, </span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#549">source</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
|
||
<p>That is, this conversion is whatever the implementation of
|
||
<code><a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/alloc/borrow.rs.html#83">source</a></span><a href="#impl-ToOwned-for-Command" class="anchor"></a><h3 class="code-header in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'><p>The resulting type after obtaining ownership.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/alloc/borrow.rs.html#88">source</a></span><a href="#method.to_owned" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fnname">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'><p>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/alloc/borrow.rs.html#92">source</a></span><a href="#method.clone_into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fnname">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'><p>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/alloc/string.rs.html#2479">source</a></span><a href="#impl-ToString-for-Command" class="anchor"></a><h3 class="code-header in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.64.0/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/alloc/string.rs.html#2485">source</a></span><a href="#method.to_string" class="anchor"></a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/1.64.0/alloc/string/trait.ToString.html#tymethod.to_string" class="fnname">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/1.64.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'><p>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/1.64.0/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#598">source</a></span><a href="#impl-TryFrom%3CU%3E-for-Command" class="anchor"></a><h3 class="code-header in-band">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>, </span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'><p>The type returned in the event of a conversion error.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#604">source</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'><p>Performs the conversion.</p>
|
||
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Command" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#583">source</a></span><a href="#impl-TryInto%3CU%3E-for-Command" class="anchor"></a><h3 class="code-header in-band">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>, </span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'><p>The type returned in the event of a conversion error.</p>
|
||
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#589">source</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'><p>Performs the conversion.</p>
|
||
</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="clap" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0 (a55dd71d5 2022-09-19)" ></div></body></html> |