wasmer/rustdoc/clap/struct.ArgGroup.html
2019-09-06 15:57:44 -07:00

264 lines
59 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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="API documentation for the Rust `ArgGroup` struct in crate `clap`."><meta name="keywords" content="rust, rustlang, rust-lang, ArgGroup"><title>clap::ArgGroup - Rust</title><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="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../clap/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Struct ArgGroup</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.arg">arg</a><a href="#method.args">args</a><a href="#method.conflicts_with">conflicts_with</a><a href="#method.conflicts_with_all">conflicts_with_all</a><a href="#method.multiple">multiple</a><a href="#method.required">required</a><a href="#method.requires">requires</a><a href="#method.requires_all">requires_all</a><a href="#method.with_name">with_name</a></div><a class="sidebar-title" href="#implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Clone">Clone</a><a href="#impl-Debug">Debug</a><a href="#impl-Default">Default</a><a href="#impl-From%3C%26%27z%20ArgGroup%3C%27a%3E%3E">From&lt;&amp;&#39;z ArgGroup&lt;&#39;a&gt;&gt;</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-ToOwned">ToOwned</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a></div></div><p class='location'><a href='index.html'>clap</a></p><script>window.sidebarCurrent = {name: 'ArgGroup', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../src/clap/args/group.rs.html#81-88' title='goto source code'>[src]</a></span><span class='in-band'>Struct <a href='index.html'>clap</a>::<wbr><a class="struct" href=''>ArgGroup</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class='rust struct'>pub struct ArgGroup&lt;'a&gt; { /* fields omitted */ }</pre></div><div class='docblock'><p><code>ArgGroup</code>s are a family of related <a href="./struct.Arg.html">arguments</a> and way for you to express, &quot;Any of these
arguments&quot;. By placing arguments in a logical group, you can create easier requirement and
exclusion rules instead of having to list each argument individually, or when you want a rule
to apply &quot;any but not all&quot; arguments.</p>
<p>For instance, you can make an entire <code>ArgGroup</code> required. If <a href="./struct.ArgGroup.html#method.multiple"><code>ArgGroup::multiple(true)</code></a> is
set, this means that at least one argument from that group must be present. If
[<code>ArgGroup::multiple(false)</code>] is set (the default), one and <em>only</em> one must be present.</p>
<p>You can also do things such as name an entire <code>ArgGroup</code> as a <a href="./struct.Arg.html#method.conflicts_with">conflict</a> or <a href="./struct.Arg.html#method.requires">requirement</a> for
another argument, meaning any of the arguments that belong to that group will cause a failure
if present, or must present respectively.</p>
<p>Perhaps the most common use of <code>ArgGroup</code>s is to require one and <em>only</em> one argument to be
present out of a given set. Imagine that you had multiple arguments, and you want one of them
to be required, but making all of them required isn't feasible because perhaps they conflict
with each other. For example, lets say that you were building an application where one could
set a given version number by supplying a string with an option argument, i.e.
<code>--set-ver v1.2.3</code>, you also wanted to support automatically using a previous version number
and simply incrementing one of the three numbers. So you create three flags <code>--major</code>,
<code>--minor</code>, and <code>--patch</code>. All of these arguments shouldn't be used at one time but you want to
specify that <em>at least one</em> of them is used. For this, you can create a group.</p>
<p>Finally, you may use <code>ArgGroup</code>s to pull a value from a group of arguments when you don't care
exactly which argument was actually used at runtime.</p>
<h1 id="examples" class="section-header"><a href="#examples">Examples</a></h1>
<p>The following example demonstrates using an <code>ArgGroup</code> 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">
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;app&quot;</span>)
.<span class="ident">args_from_usage</span>(
<span class="string">&quot;--set-ver [ver] &#39;set the version manually&#39;
--major &#39;auto increase major&#39;
--minor &#39;auto increase minor&#39;
--patch &#39;auto increase patch&#39;&quot;</span>)
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;vers&quot;</span>)
.<span class="ident">args</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;set-ver&quot;</span>, <span class="string">&quot;major&quot;</span>, <span class="string">&quot;minor&quot;</span>, <span class="string">&quot;patch&quot;</span>])
.<span class="ident">required</span>(<span class="bool-val">true</span>))
.<span class="ident">get_matches_from_safe</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;app&quot;</span>, <span class="string">&quot;--major&quot;</span>, <span class="string">&quot;--patch&quot;</span>]);
<span class="comment">// Because we used two args in the group it&#39;s an error</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">result</span>.<span class="ident">is_err</span>());
<span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">unwrap_err</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">kind</span>, <span class="ident">ErrorKind</span>::<span class="ident">ArgumentConflict</span>);</pre></div>
<p>This next example shows a passing parse of the same scenario</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;app&quot;</span>)
.<span class="ident">args_from_usage</span>(
<span class="string">&quot;--set-ver [ver] &#39;set the version manually&#39;
--major &#39;auto increase major&#39;
--minor &#39;auto increase minor&#39;
--patch &#39;auto increase patch&#39;&quot;</span>)
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;vers&quot;</span>)
.<span class="ident">args</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;set-ver&quot;</span>, <span class="string">&quot;major&quot;</span>, <span class="string">&quot;minor&quot;</span>,<span class="string">&quot;patch&quot;</span>])
.<span class="ident">required</span>(<span class="bool-val">true</span>))
.<span class="ident">get_matches_from_safe</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;app&quot;</span>, <span class="string">&quot;--major&quot;</span>]);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">result</span>.<span class="ident">is_ok</span>());
<span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">unwrap</span>();
<span class="comment">// We may not know which of the args was used, so we can test for the group...</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">matches</span>.<span class="ident">is_present</span>(<span class="string">&quot;vers&quot;</span>));
<span class="comment">// we could also alternatively check each arg individually (not shown here)</span></pre></div>
</div><h2 id='methods' class='small-section-header'>Methods<a href='#methods' class='anchor'></a></h2><h3 id='impl' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a href='#impl' class='anchor'></a><a class='srclink' href='../src/clap/args/group.rs.html#90-421' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.with_name' class="method"><code id='with_name.v'>pub fn <a href='#method.with_name' class='fnname'>with_name</a>(n: &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#101-110' title='goto source code'>[src]</a></h4><div class='docblock'><p>Creates a new instance of <code>ArgGroup</code> using a unique string name. The name will be used to
get values from the group or refer to the group inside of conflict and requirement rules.</p>
<h1 id="examples-1" class="section-header"><a href="#examples-1">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;config&quot;</span>)</pre></div>
</div><h4 id='method.arg' class="method"><code id='arg.v'>pub fn <a href='#method.arg' class='fnname'>arg</a>(self, n: &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#150-158' title='goto source code'>[src]</a></h4><div class='docblock'><p>Adds an <a href="./struct.Arg.html">argument</a> to this group by name</p>
<h1 id="examples-2" class="section-header"><a href="#examples-2">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;myprog&quot;</span>)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;flag&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;f&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;color&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;c&quot;</span>))
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;req_flags&quot;</span>)
.<span class="ident">arg</span>(<span class="string">&quot;flag&quot;</span>)
.<span class="ident">arg</span>(<span class="string">&quot;color&quot;</span>))
.<span class="ident">get_matches_from</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;myprog&quot;</span>, <span class="string">&quot;-f&quot;</span>]);
<span class="comment">// maybe we don&#39;t know which of the two flags was used...</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">m</span>.<span class="ident">is_present</span>(<span class="string">&quot;req_flags&quot;</span>));
<span class="comment">// but we can also check individually if needed</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">m</span>.<span class="ident">is_present</span>(<span class="string">&quot;flag&quot;</span>));</pre></div>
</div><h4 id='method.args' class="method"><code id='args.v'>pub fn <a href='#method.args' class='fnname'>args</a>(self, ns: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a>&amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#180-185' title='goto source code'>[src]</a></h4><div class='docblock'><p>Adds multiple <a href="./struct.Arg.html">arguments</a> to this group by name</p>
<h1 id="examples-3" class="section-header"><a href="#examples-3">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;myprog&quot;</span>)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;flag&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;f&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;color&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;c&quot;</span>))
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;req_flags&quot;</span>)
.<span class="ident">args</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;flag&quot;</span>, <span class="string">&quot;color&quot;</span>]))
.<span class="ident">get_matches_from</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;myprog&quot;</span>, <span class="string">&quot;-f&quot;</span>]);
<span class="comment">// maybe we don&#39;t know which of the two flags was used...</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">m</span>.<span class="ident">is_present</span>(<span class="string">&quot;req_flags&quot;</span>));
<span class="comment">// but we can also check individually if needed</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">m</span>.<span class="ident">is_present</span>(<span class="string">&quot;flag&quot;</span>));</pre></div>
</div><h4 id='method.multiple' class="method"><code id='multiple.v'>pub fn <a href='#method.multiple' class='fnname'>multiple</a>(self, m: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#227-230' title='goto source code'>[src]</a></h4><div class='docblock'><p>Allows more than one of the <a href="./struct.Arg.html">'Arg'</a>s in this group to be used. (Default: <code>false</code>)</p>
<h1 id="examples-4" class="section-header"><a href="#examples-4">Examples</a></h1>
<p>Notice in this example we use <em>both</em> the <code>-f</code> and <code>-c</code> flags which are both part of the
group</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">m</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;myprog&quot;</span>)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;flag&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;f&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;color&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;c&quot;</span>))
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;req_flags&quot;</span>)
.<span class="ident">args</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;flag&quot;</span>, <span class="string">&quot;color&quot;</span>])
.<span class="ident">multiple</span>(<span class="bool-val">true</span>))
.<span class="ident">get_matches_from</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;myprog&quot;</span>, <span class="string">&quot;-f&quot;</span>, <span class="string">&quot;-c&quot;</span>]);
<span class="comment">// maybe we don&#39;t know which of the two flags was used...</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">m</span>.<span class="ident">is_present</span>(<span class="string">&quot;req_flags&quot;</span>));</pre></div>
<p>In this next example, we show the default behavior (i.e. `multiple(false)) which will throw
an error if more than one of the args in the group was used.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;myprog&quot;</span>)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;flag&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;f&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;color&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;c&quot;</span>))
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;req_flags&quot;</span>)
.<span class="ident">args</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;flag&quot;</span>, <span class="string">&quot;color&quot;</span>]))
.<span class="ident">get_matches_from_safe</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;myprog&quot;</span>, <span class="string">&quot;-f&quot;</span>, <span class="string">&quot;-c&quot;</span>]);
<span class="comment">// Because we used both args in the group it&#39;s an error</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">result</span>.<span class="ident">is_err</span>());
<span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">unwrap_err</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">kind</span>, <span class="ident">ErrorKind</span>::<span class="ident">ArgumentConflict</span>);</pre></div>
</div><h4 id='method.required' class="method"><code id='required.v'>pub fn <a href='#method.required' class='fnname'>required</a>(self, r: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#266-269' title='goto source code'>[src]</a></h4><div class='docblock'><p>Sets the group as required or not. A required group will be displayed in the usage string
of the application in the format <code>&lt;arg|arg2|arg3&gt;</code>. A required <code>ArgGroup</code> simply states
that one argument from this group <em>must</em> be present at runtime (unless
conflicting with another argument).</p>
<p><strong>NOTE:</strong> This setting only applies to the current <a href="./struct.App.html"><code>App</code></a> / <a href="./struct.SubCommand.html"><code>SubCommand</code></a>, and not
globally.</p>
<p><strong>NOTE:</strong> By default, <a href="./struct.ArgGroup.html#method.multiple"><code>ArgGroup::multiple</code></a> is set to <code>false</code> which when combined with
<code>ArgGroup::required(true)</code> states, &quot;One and <em>only one</em> arg must be used from this group.
Use of more than one arg is an error.&quot; Vice setting <code>ArgGroup::multiple(true)</code> which
states, '<em>At least</em> one arg from this group must be used. Using multiple is OK.&quot;</p>
<h1 id="examples-5" class="section-header"><a href="#examples-5">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;myprog&quot;</span>)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;flag&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;f&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;color&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;c&quot;</span>))
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;req_flags&quot;</span>)
.<span class="ident">args</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;flag&quot;</span>, <span class="string">&quot;color&quot;</span>])
.<span class="ident">required</span>(<span class="bool-val">true</span>))
.<span class="ident">get_matches_from_safe</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;myprog&quot;</span>]);
<span class="comment">// Because we didn&#39;t use any of the args in the group, it&#39;s an error</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">result</span>.<span class="ident">is_err</span>());
<span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">unwrap_err</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">kind</span>, <span class="ident">ErrorKind</span>::<span class="ident">MissingRequiredArgument</span>);</pre></div>
</div><h4 id='method.requires' class="method"><code id='requires.v'>pub fn <a href='#method.requires' class='fnname'>requires</a>(self, n: &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#301-308' title='goto source code'>[src]</a></h4><div class='docblock'><p>Sets the requirement rules of this group. This is not to be confused with a
<a href="./struct.ArgGroup.html#method.required">required group</a>. Requirement rules function just like <a href="./struct.Arg.html#method.requires">argument requirement rules</a>, you
can name other arguments or groups that must be present when any one of the arguments from
this group is used.</p>
<p><strong>NOTE:</strong> The name provided may be an argument, or group name</p>
<h1 id="examples-6" class="section-header"><a href="#examples-6">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;myprog&quot;</span>)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;flag&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;f&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;color&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;c&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;debug&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;d&quot;</span>))
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;req_flags&quot;</span>)
.<span class="ident">args</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;flag&quot;</span>, <span class="string">&quot;color&quot;</span>])
.<span class="ident">requires</span>(<span class="string">&quot;debug&quot;</span>))
.<span class="ident">get_matches_from_safe</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;myprog&quot;</span>, <span class="string">&quot;-c&quot;</span>]);
<span class="comment">// because we used an arg from the group, and the group requires &quot;-d&quot; to be used, it&#39;s an</span>
<span class="comment">// error</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">result</span>.<span class="ident">is_err</span>());
<span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">unwrap_err</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">kind</span>, <span class="ident">ErrorKind</span>::<span class="ident">MissingRequiredArgument</span>);</pre></div>
</div><h4 id='method.requires_all' class="method"><code id='requires_all.v'>pub fn <a href='#method.requires_all' class='fnname'>requires_all</a>(self, ns: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a>&amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#342-347' title='goto source code'>[src]</a></h4><div class='docblock'><p>Sets the requirement rules of this group. This is not to be confused with a
<a href="./struct.ArgGroup.html#method.required">required group</a>. Requirement rules function just like <a href="./struct.Arg.html#method.requires_all">argument requirement rules</a>, you
can name other arguments or groups that must be present when one of the arguments from this
group is used.</p>
<p><strong>NOTE:</strong> The names provided may be an argument, or group name</p>
<h1 id="examples-7" class="section-header"><a href="#examples-7">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;myprog&quot;</span>)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;flag&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;f&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;color&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;c&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;debug&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;d&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;verb&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;v&quot;</span>))
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;req_flags&quot;</span>)
.<span class="ident">args</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;flag&quot;</span>, <span class="string">&quot;color&quot;</span>])
.<span class="ident">requires_all</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;debug&quot;</span>, <span class="string">&quot;verb&quot;</span>]))
.<span class="ident">get_matches_from_safe</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;myprog&quot;</span>, <span class="string">&quot;-c&quot;</span>, <span class="string">&quot;-d&quot;</span>]);
<span class="comment">// because we used an arg from the group, and the group requires &quot;-d&quot; and &quot;-v&quot; to be used,</span>
<span class="comment">// yet we only used &quot;-d&quot; it&#39;s an error</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">result</span>.<span class="ident">is_err</span>());
<span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">unwrap_err</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">kind</span>, <span class="ident">ErrorKind</span>::<span class="ident">MissingRequiredArgument</span>);</pre></div>
</div><h4 id='method.conflicts_with' class="method"><code id='conflicts_with.v'>pub fn <a href='#method.conflicts_with' class='fnname'>conflicts_with</a>(self, n: &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#376-383' title='goto source code'>[src]</a></h4><div class='docblock'><p>Sets the exclusion rules of this group. Exclusion (aka conflict) rules function just like
<a href="./struct.Arg.html#method.conflicts_with">argument exclusion rules</a>, you can name other arguments or groups that must <em>not</em> be
present when one of the arguments from this group are used.</p>
<p><strong>NOTE:</strong> The name provided may be an argument, or group name</p>
<h1 id="examples-8" class="section-header"><a href="#examples-8">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;myprog&quot;</span>)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;flag&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;f&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;color&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;c&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;debug&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;d&quot;</span>))
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;req_flags&quot;</span>)
.<span class="ident">args</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;flag&quot;</span>, <span class="string">&quot;color&quot;</span>])
.<span class="ident">conflicts_with</span>(<span class="string">&quot;debug&quot;</span>))
.<span class="ident">get_matches_from_safe</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;myprog&quot;</span>, <span class="string">&quot;-c&quot;</span>, <span class="string">&quot;-d&quot;</span>]);
<span class="comment">// because we used an arg from the group, and the group conflicts with &quot;-d&quot;, it&#39;s an error</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">result</span>.<span class="ident">is_err</span>());
<span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">unwrap_err</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">kind</span>, <span class="ident">ErrorKind</span>::<span class="ident">ArgumentConflict</span>);</pre></div>
</div><h4 id='method.conflicts_with_all' class="method"><code id='conflicts_with_all.v'>pub fn <a href='#method.conflicts_with_all' class='fnname'>conflicts_with_all</a>(self, ns: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a>&amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#415-420' title='goto source code'>[src]</a></h4><div class='docblock'><p>Sets the exclusion rules of this group. Exclusion rules function just like
<a href="./struct.Arg.html#method.conflicts_with_all">argument exclusion rules</a>, you can name other arguments or groups that must <em>not</em> be
present when one of the arguments from this group are used.</p>
<p><strong>NOTE:</strong> The names provided may be an argument, or group name</p>
<h1 id="examples-9" class="section-header"><a href="#examples-9">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;myprog&quot;</span>)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;flag&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;f&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;color&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;c&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;debug&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;d&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;verb&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;v&quot;</span>))
.<span class="ident">group</span>(<span class="ident">ArgGroup</span>::<span class="ident">with_name</span>(<span class="string">&quot;req_flags&quot;</span>)
.<span class="ident">args</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;flag&quot;</span>, <span class="string">&quot;color&quot;</span>])
.<span class="ident">conflicts_with_all</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;debug&quot;</span>, <span class="string">&quot;verb&quot;</span>]))
.<span class="ident">get_matches_from_safe</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;myprog&quot;</span>, <span class="string">&quot;-c&quot;</span>, <span class="string">&quot;-v&quot;</span>]);
<span class="comment">// because we used an arg from the group, and the group conflicts with either &quot;-v&quot; or &quot;-d&quot;</span>
<span class="comment">// it&#39;s an error</span>
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">result</span>.<span class="ident">is_err</span>());
<span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">unwrap_err</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">kind</span>, <span class="ident">ErrorKind</span>::<span class="ident">ArgumentConflict</span>);</pre></div>
</div></div><h2 id='implementations' class='small-section-header'>Trait Implementations<a href='#implementations' class='anchor'></a></h2><div id='implementations-list'><h3 id='impl-Default' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a href='#impl-Default' class='anchor'></a><a class='srclink' href='../src/clap/args/group.rs.html#80' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.default' class="method hidden"><code id='default.v'>fn <a href='https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default' class='fnname'>default</a>() -&gt; <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a class='srclink' href='../src/clap/args/group.rs.html#80' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns the &quot;default value&quot; for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></p>
</div></div><h3 id='impl-Clone' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a href='#impl-Clone' class='anchor'></a><a class='srclink' href='../src/clap/args/group.rs.html#624-635' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.clone' class="method hidden"><code id='clone.v'>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone' class='fnname'>clone</a>(&amp;self) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#625-634' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
</div><h4 id='method.clone_from' class="method hidden"><code id='clone_from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from' class='fnname'>clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)</code><span class='since' title='Stable since Rust version 1.0.0'>1.0.0</span><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/clone.rs.html#131-133' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
</div></div><h3 id='impl-From%3C%26%27z%20ArgGroup%3C%27a%3E%3E' class='impl'><code class='in-band'>impl&lt;'a, 'z&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;'z <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;&gt; for <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a href='#impl-From%3C%26%27z%20ArgGroup%3C%27a%3E%3E' class='anchor'></a><a class='srclink' href='../src/clap/args/group.rs.html#443-454' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from' class="method hidden"><code id='from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from' class='fnname'>from</a>(g: &amp;'z <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;) -&gt; Self</code><a class='srclink' href='../src/clap/args/group.rs.html#444-453' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-Debug' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a href='#impl-Debug' class='anchor'></a><a class='srclink' href='../src/clap/args/group.rs.html#423-441' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.fmt' class="method hidden"><code id='fmt.v'>fn <a href='https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt' class='fnname'>fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code><a class='srclink' href='../src/clap/args/group.rs.html#424-440' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></div></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'><h3 id='impl-Sync' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a href='#impl-Sync' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Send' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a href='#impl-Send' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Unpin' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a href='#impl-Unpin' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-UnwindSafe' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a href='#impl-UnwindSafe' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-RefUnwindSafe' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="../clap/struct.ArgGroup.html" title="struct clap::ArgGroup">ArgGroup</a>&lt;'a&gt;</code><a href='#impl-RefUnwindSafe' class='anchor'></a></h3><div class='impl-items'></div></div><h2 id='blanket-implementations' class='small-section-header'>Blanket Implementations<a href='#blanket-implementations' class='anchor'></a></h2><div id='blanket-implementations-list'><h3 id='impl-Into%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-Into%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#543-548' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.into' class="method hidden"><code id='into.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into' class='fnname'>into</a>(self) -&gt; U</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#545-547' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-ToOwned' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,&nbsp;</span></code><a href='#impl-ToOwned' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#81-92' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Owned' class="type"><code id='Owned.t'>type <a href='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned' class="type">Owned</a> = T</code></h4><div class='docblock'><p>The resulting type after obtaining ownership.</p>
</div><h4 id='method.to_owned' class="method hidden"><code id='to_owned.v'>fn <a href='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned' class='fnname'>to_owned</a>(&amp;self) -&gt; T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#85-87' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
</div><h4 id='method.clone_into' class="method hidden"><code id='clone_into.v'>fn <a href='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into' class='fnname'>clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T)</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#89-91' title='goto source code'>[src]</a></h4><div class='stability hidden'><div class='stab unstable'><details><summary><span class='emoji'>🔬</span> This is a nightly-only experimental API. (<code>toowned_clone_into</code>)</summary><p>recently added</p>
</details></div></div><div class='docblock hidden'><p>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
</div></div><h3 id='impl-From%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</code><a href='#impl-From%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#552-554' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from-1' class="method hidden"><code id='from.v-1'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from' class='fnname'>from</a>(t: T) -&gt; T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#553' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryFrom%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryFrom%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#571-577' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error' class="type"><code id='Error.t'>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error' class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id='method.try_from' class="method hidden"><code id='try_from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from' class='fnname'>try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#574-576' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryInto%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryInto%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#559-566' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error-1' class="type"><code id='Error.t-1'>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error' class="type">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id='method.try_into' class="method hidden"><code id='try_into.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into' class='fnname'>try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#563-565' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-BorrowMut%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-BorrowMut%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218-220' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow_mut' class="method hidden"><code id='borrow_mut.v'>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut' class='fnname'>borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#219' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></div><h3 id='impl-Borrow%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-Borrow%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213-215' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow' class="method hidden"><code id='borrow.v'>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow' class='fnname'>borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#214' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div><h3 id='impl-Any' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-Any' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#100-102' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.type_id' class="method hidden"><code id='type_id.v'>fn <a href='https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id' class='fnname'>type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#101' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></div></div></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../";window.currentCrate = "clap";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>