oxipng/doc/src/clap/app/settings.rs.html
2016-05-04 10:41:29 -04:00

1170 lines
No EOL
66 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="Source to the Rust file `/Users/holmerj/.cargo/registry/src/github.com-88ac128001ac3a9a/clap-2.4.0/src/app/settings.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>settings.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content source"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
<span id="340">340</span>
<span id="341">341</span>
<span id="342">342</span>
<span id="343">343</span>
<span id="344">344</span>
<span id="345">345</span>
<span id="346">346</span>
<span id="347">347</span>
<span id="348">348</span>
<span id="349">349</span>
<span id="350">350</span>
<span id="351">351</span>
<span id="352">352</span>
<span id="353">353</span>
<span id="354">354</span>
<span id="355">355</span>
<span id="356">356</span>
<span id="357">357</span>
<span id="358">358</span>
<span id="359">359</span>
<span id="360">360</span>
<span id="361">361</span>
<span id="362">362</span>
<span id="363">363</span>
<span id="364">364</span>
<span id="365">365</span>
<span id="366">366</span>
<span id="367">367</span>
<span id="368">368</span>
<span id="369">369</span>
<span id="370">370</span>
<span id="371">371</span>
<span id="372">372</span>
<span id="373">373</span>
<span id="374">374</span>
<span id="375">375</span>
<span id="376">376</span>
<span id="377">377</span>
<span id="378">378</span>
<span id="379">379</span>
<span id="380">380</span>
<span id="381">381</span>
<span id="382">382</span>
<span id="383">383</span>
<span id="384">384</span>
<span id="385">385</span>
<span id="386">386</span>
<span id="387">387</span>
<span id="388">388</span>
<span id="389">389</span>
<span id="390">390</span>
<span id="391">391</span>
<span id="392">392</span>
<span id="393">393</span>
<span id="394">394</span>
<span id="395">395</span>
<span id="396">396</span>
<span id="397">397</span>
<span id="398">398</span>
<span id="399">399</span>
<span id="400">400</span>
<span id="401">401</span>
<span id="402">402</span>
<span id="403">403</span>
<span id="404">404</span>
<span id="405">405</span>
<span id="406">406</span>
<span id="407">407</span>
<span id="408">408</span>
<span id="409">409</span>
<span id="410">410</span>
<span id="411">411</span>
<span id="412">412</span>
<span id="413">413</span>
<span id="414">414</span>
<span id="415">415</span>
<span id="416">416</span>
<span id="417">417</span>
<span id="418">418</span>
<span id="419">419</span>
<span id="420">420</span>
<span id="421">421</span>
<span id="422">422</span>
<span id="423">423</span>
<span id="424">424</span>
<span id="425">425</span>
<span id="426">426</span>
<span id="427">427</span>
<span id="428">428</span>
<span id="429">429</span>
<span id="430">430</span>
<span id="431">431</span>
<span id="432">432</span>
<span id="433">433</span>
<span id="434">434</span>
<span id="435">435</span>
<span id="436">436</span>
<span id="437">437</span>
<span id="438">438</span>
<span id="439">439</span>
<span id="440">440</span>
<span id="441">441</span>
<span id="442">442</span>
<span id="443">443</span>
<span id="444">444</span>
<span id="445">445</span>
<span id="446">446</span>
<span id="447">447</span>
<span id="448">448</span>
<span id="449">449</span>
<span id="450">450</span>
<span id="451">451</span>
<span id="452">452</span>
<span id="453">453</span>
<span id="454">454</span>
<span id="455">455</span>
<span id="456">456</span>
<span id="457">457</span>
<span id="458">458</span>
<span id="459">459</span>
<span id="460">460</span>
<span id="461">461</span>
<span id="462">462</span>
<span id="463">463</span>
<span id="464">464</span>
<span id="465">465</span>
<span id="466">466</span>
<span id="467">467</span>
<span id="468">468</span>
<span id="469">469</span>
<span id="470">470</span>
<span id="471">471</span>
<span id="472">472</span>
<span id="473">473</span>
<span id="474">474</span>
<span id="475">475</span>
<span id="476">476</span>
<span id="477">477</span>
<span id="478">478</span>
<span id="479">479</span>
<span id="480">480</span>
<span id="481">481</span>
<span id="482">482</span>
<span id="483">483</span>
<span id="484">484</span>
<span id="485">485</span>
<span id="486">486</span>
<span id="487">487</span>
<span id="488">488</span>
<span id="489">489</span>
<span id="490">490</span>
<span id="491">491</span>
<span id="492">492</span>
<span id="493">493</span>
<span id="494">494</span>
<span id="495">495</span>
<span id="496">496</span>
<span id="497">497</span>
<span id="498">498</span>
<span id="499">499</span>
<span id="500">500</span>
<span id="501">501</span>
<span id="502">502</span>
<span id="503">503</span>
<span id="504">504</span>
<span id="505">505</span>
<span id="506">506</span>
<span id="507">507</span>
<span id="508">508</span>
<span id="509">509</span>
<span id="510">510</span>
<span id="511">511</span>
<span id="512">512</span>
<span id="513">513</span>
<span id="514">514</span>
<span id="515">515</span>
<span id="516">516</span>
<span id="517">517</span>
<span id="518">518</span>
<span id="519">519</span>
<span id="520">520</span>
<span id="521">521</span>
<span id="522">522</span>
<span id="523">523</span>
<span id="524">524</span>
<span id="525">525</span>
<span id="526">526</span>
<span id="527">527</span>
<span id="528">528</span>
<span id="529">529</span>
<span id="530">530</span>
<span id="531">531</span>
</pre><pre class='rust '>
<span class='kw'>use</span> <span class='ident'>std</span>::<span class='ident'>str</span>::<span class='ident'>FromStr</span>;
<span class='kw'>use</span> <span class='ident'>std</span>::<span class='ident'>ascii</span>::<span class='ident'>AsciiExt</span>;
<span class='macro'>bitflags</span><span class='macro'>!</span> {
<span class='ident'>flags</span> <span class='ident'>Flags</span>: <span class='ident'>u32</span> {
<span class='kw'>const</span> <span class='ident'>SC_NEGATE_REQS</span> <span class='op'>=</span> <span class='number'>0b00000000000000000000001</span>,
<span class='kw'>const</span> <span class='ident'>SC_REQUIRED</span> <span class='op'>=</span> <span class='number'>0b00000000000000000000010</span>,
<span class='kw'>const</span> <span class='ident'>A_REQUIRED_ELSE_HELP</span> <span class='op'>=</span> <span class='number'>0b00000000000000000000100</span>,
<span class='kw'>const</span> <span class='ident'>GLOBAL_VERSION</span> <span class='op'>=</span> <span class='number'>0b00000000000000000001000</span>,
<span class='kw'>const</span> <span class='ident'>VERSIONLESS_SC</span> <span class='op'>=</span> <span class='number'>0b00000000000000000010000</span>,
<span class='kw'>const</span> <span class='ident'>UNIFIED_HELP</span> <span class='op'>=</span> <span class='number'>0b00000000000000000100000</span>,
<span class='kw'>const</span> <span class='ident'>WAIT_ON_ERROR</span> <span class='op'>=</span> <span class='number'>0b00000000000000001000000</span>,
<span class='kw'>const</span> <span class='ident'>SC_REQUIRED_ELSE_HELP</span><span class='op'>=</span> <span class='number'>0b00000000000000010000000</span>,
<span class='kw'>const</span> <span class='ident'>NEEDS_LONG_HELP</span> <span class='op'>=</span> <span class='number'>0b00000000000000100000000</span>,
<span class='kw'>const</span> <span class='ident'>NEEDS_LONG_VERSION</span> <span class='op'>=</span> <span class='number'>0b00000000000001000000000</span>,
<span class='kw'>const</span> <span class='ident'>NEEDS_SC_HELP</span> <span class='op'>=</span> <span class='number'>0b00000000000010000000000</span>,
<span class='kw'>const</span> <span class='ident'>DISABLE_VERSION</span> <span class='op'>=</span> <span class='number'>0b00000000000100000000000</span>,
<span class='kw'>const</span> <span class='ident'>HIDDEN</span> <span class='op'>=</span> <span class='number'>0b00000000001000000000000</span>,
<span class='kw'>const</span> <span class='ident'>TRAILING_VARARG</span> <span class='op'>=</span> <span class='number'>0b00000000010000000000000</span>,
<span class='kw'>const</span> <span class='ident'>NO_BIN_NAME</span> <span class='op'>=</span> <span class='number'>0b00000000100000000000000</span>,
<span class='kw'>const</span> <span class='ident'>ALLOW_UNK_SC</span> <span class='op'>=</span> <span class='number'>0b00000001000000000000000</span>,
<span class='kw'>const</span> <span class='ident'>UTF8_STRICT</span> <span class='op'>=</span> <span class='number'>0b00000010000000000000000</span>,
<span class='kw'>const</span> <span class='ident'>UTF8_NONE</span> <span class='op'>=</span> <span class='number'>0b00000100000000000000000</span>,
<span class='kw'>const</span> <span class='ident'>LEADING_HYPHEN</span> <span class='op'>=</span> <span class='number'>0b00001000000000000000000</span>,
<span class='kw'>const</span> <span class='ident'>NO_POS_VALUES</span> <span class='op'>=</span> <span class='number'>0b00010000000000000000000</span>,
<span class='kw'>const</span> <span class='ident'>NEXT_LINE_HELP</span> <span class='op'>=</span> <span class='number'>0b00100000000000000000000</span>,
<span class='kw'>const</span> <span class='ident'>DERIVE_DISP_ORDER</span> <span class='op'>=</span> <span class='number'>0b01000000000000000000000</span>,
<span class='kw'>const</span> <span class='ident'>COLORED_HELP</span> <span class='op'>=</span> <span class='number'>0b10000000000000000000000</span>,
}
}
<span class='attribute'>#[<span class='ident'>doc</span>(<span class='ident'>hidden</span>)]</span>
<span class='attribute'>#[<span class='ident'>derive</span>(<span class='ident'>Debug</span>)]</span>
<span class='kw'>pub</span> <span class='kw'>struct</span> <span class='ident'>AppFlags</span>(<span class='ident'>Flags</span>);
<span class='kw'>impl</span> <span class='ident'>Clone</span> <span class='kw'>for</span> <span class='ident'>AppFlags</span> {
<span class='kw'>fn</span> <span class='ident'>clone</span>(<span class='kw-2'>&amp;</span><span class='self'>self</span>) <span class='op'>-&gt;</span> <span class='kw'>Self</span> {
<span class='ident'>AppFlags</span>(<span class='self'>self</span>.<span class='number'>0</span>)
}
}
<span class='kw'>impl</span> <span class='ident'>Default</span> <span class='kw'>for</span> <span class='ident'>AppFlags</span> {
<span class='kw'>fn</span> <span class='ident'>default</span>() <span class='op'>-&gt;</span> <span class='kw'>Self</span> {
<span class='ident'>AppFlags</span>(<span class='ident'>NEEDS_LONG_VERSION</span> <span class='op'>|</span> <span class='ident'>NEEDS_LONG_HELP</span> <span class='op'>|</span> <span class='ident'>NEEDS_SC_HELP</span> <span class='op'>|</span> <span class='ident'>UTF8_NONE</span>)
}
}
<span class='kw'>impl</span> <span class='ident'>AppFlags</span> {
<span class='kw'>pub</span> <span class='kw'>fn</span> <span class='ident'>new</span>() <span class='op'>-&gt;</span> <span class='kw'>Self</span> {
<span class='ident'>AppFlags</span>::<span class='ident'>default</span>()
}
<span class='macro'>impl_settings</span><span class='macro'>!</span> { <span class='ident'>AppSettings</span>,
<span class='ident'>SubcommandsNegateReqs</span> <span class='op'>=&gt;</span> <span class='ident'>SC_NEGATE_REQS</span>,
<span class='ident'>VersionlessSubcommands</span> <span class='op'>=&gt;</span> <span class='ident'>VERSIONLESS_SC</span>,
<span class='ident'>SubcommandRequired</span> <span class='op'>=&gt;</span> <span class='ident'>SC_REQUIRED</span>,
<span class='ident'>ArgRequiredElseHelp</span> <span class='op'>=&gt;</span> <span class='ident'>A_REQUIRED_ELSE_HELP</span>,
<span class='ident'>GlobalVersion</span> <span class='op'>=&gt;</span> <span class='ident'>GLOBAL_VERSION</span>,
<span class='ident'>UnifiedHelpMessage</span> <span class='op'>=&gt;</span> <span class='ident'>UNIFIED_HELP</span>,
<span class='ident'>WaitOnError</span> <span class='op'>=&gt;</span> <span class='ident'>WAIT_ON_ERROR</span>,
<span class='ident'>SubcommandRequiredElseHelp</span> <span class='op'>=&gt;</span> <span class='ident'>SC_REQUIRED_ELSE_HELP</span>,
<span class='ident'>NeedsLongHelp</span> <span class='op'>=&gt;</span> <span class='ident'>NEEDS_LONG_HELP</span>,
<span class='ident'>NeedsLongVersion</span> <span class='op'>=&gt;</span> <span class='ident'>NEEDS_LONG_VERSION</span>,
<span class='ident'>NeedsSubcommandHelp</span> <span class='op'>=&gt;</span> <span class='ident'>NEEDS_SC_HELP</span>,
<span class='ident'>DisableVersion</span> <span class='op'>=&gt;</span> <span class='ident'>DISABLE_VERSION</span>,
<span class='ident'>Hidden</span> <span class='op'>=&gt;</span> <span class='ident'>HIDDEN</span>,
<span class='ident'>TrailingVarArg</span> <span class='op'>=&gt;</span> <span class='ident'>TRAILING_VARARG</span>,
<span class='ident'>NoBinaryName</span> <span class='op'>=&gt;</span> <span class='ident'>NO_BIN_NAME</span>,
<span class='ident'>AllowExternalSubcommands</span> <span class='op'>=&gt;</span> <span class='ident'>ALLOW_UNK_SC</span>,
<span class='ident'>StrictUtf8</span> <span class='op'>=&gt;</span> <span class='ident'>UTF8_STRICT</span>,
<span class='ident'>AllowInvalidUtf8</span> <span class='op'>=&gt;</span> <span class='ident'>UTF8_NONE</span>,
<span class='ident'>AllowLeadingHyphen</span> <span class='op'>=&gt;</span> <span class='ident'>LEADING_HYPHEN</span>,
<span class='ident'>HidePossibleValuesInHelp</span> <span class='op'>=&gt;</span> <span class='ident'>NO_POS_VALUES</span>,
<span class='ident'>NextLineHelp</span> <span class='op'>=&gt;</span> <span class='ident'>NEXT_LINE_HELP</span>,
<span class='ident'>ColoredHelp</span> <span class='op'>=&gt;</span> <span class='ident'>COLORED_HELP</span>,
<span class='ident'>DeriveDisplayOrder</span> <span class='op'>=&gt;</span> <span class='ident'>DERIVE_DISP_ORDER</span>
}
}
<span class='doccomment'>/// Application level settings, which affect how `App` operates</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** When these settings are used, they apply only to current command, and are *not*</span>
<span class='doccomment'>/// propagated down or up through child or parent subcommands</span>
<span class='attribute'>#[<span class='ident'>derive</span>(<span class='ident'>Debug</span>, <span class='ident'>PartialEq</span>, <span class='ident'>Copy</span>, <span class='ident'>Clone</span>)]</span>
<span class='kw'>pub</span> <span class='kw'>enum</span> <span class='ident'>AppSettings</span> {
<span class='doccomment'>/// Allows subcommands to override all requirements of the parent command. For example</span>
<span class='doccomment'>/// if you had a subcommand or top level application which had a required argument that</span>
<span class='doccomment'>/// are only required as long as there is no subcommand present, using this setting would allow</span>
<span class='doccomment'>/// you set those arguments to `required(true)` and yet receive no error so long as the user</span>
<span class='doccomment'>/// uses a valid subcommand instead.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** This defaults to false (using subcommand does *not* negate requirements)</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// This first example shows that it is an error to not use a required argument</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, Arg, AppSettings, SubCommand, ErrorKind};</span>
<span class='doccomment'>/// let err = App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::SubcommandsNegateReqs)</span>
<span class='doccomment'>/// .arg(Arg::with_name(&quot;opt&quot;).required(true))</span>
<span class='doccomment'>/// .subcommand(SubCommand::with_name(&quot;test&quot;))</span>
<span class='doccomment'>/// .get_matches_from_safe(vec![</span>
<span class='doccomment'>/// &quot;myprog&quot;</span>
<span class='doccomment'>/// ]);</span>
<span class='doccomment'>/// assert!(err.is_err());</span>
<span class='doccomment'>/// assert_eq!(err.unwrap_err().kind, ErrorKind::MissingRequiredArgument);</span>
<span class='doccomment'>/// # ;</span>
<span class='doccomment'>/// ```</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// This next example shows that it is no longer error to not use a required argument if a</span>
<span class='doccomment'>/// valid subcommand is used.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, Arg, AppSettings, SubCommand, ErrorKind};</span>
<span class='doccomment'>/// let noerr = App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::SubcommandsNegateReqs)</span>
<span class='doccomment'>/// .arg(Arg::with_name(&quot;opt&quot;).required(true))</span>
<span class='doccomment'>/// .subcommand(SubCommand::with_name(&quot;test&quot;))</span>
<span class='doccomment'>/// .get_matches_from_safe(vec![</span>
<span class='doccomment'>/// &quot;myprog&quot;, &quot;test&quot;</span>
<span class='doccomment'>/// ]);</span>
<span class='doccomment'>/// assert!(noerr.is_ok());</span>
<span class='doccomment'>/// # ;</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>SubcommandsNegateReqs</span>,
<span class='doccomment'>/// Allows specifying that if no subcommand is present at runtime, error and exit gracefully</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** This defaults to false (subcommands do *not* need to be present)</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, AppSettings, SubCommand, ErrorKind};</span>
<span class='doccomment'>/// let err = App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::SubcommandRequired)</span>
<span class='doccomment'>/// .subcommand(SubCommand::with_name(&quot;test&quot;))</span>
<span class='doccomment'>/// .get_matches_from_safe(vec![</span>
<span class='doccomment'>/// &quot;myprog&quot;,</span>
<span class='doccomment'>/// ]);</span>
<span class='doccomment'>/// assert!(err.is_err());</span>
<span class='doccomment'>/// assert_eq!(err.unwrap_err().kind, ErrorKind::MissingSubcommand);</span>
<span class='doccomment'>/// # ;</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>SubcommandRequired</span>,
<span class='doccomment'>/// Specifies that the help text should be displayed (and then exit gracefully), if no</span>
<span class='doccomment'>/// arguments are present at runtime (i.e. an empty run such as, `$ myprog`.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** Subcommands count as arguments</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, AppSettings};</span>
<span class='doccomment'>/// App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::ArgRequiredElseHelp)</span>
<span class='doccomment'>/// # ;</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>ArgRequiredElseHelp</span>,
<span class='doccomment'>/// Specifies to version of the current command for all child subcommands. (Defaults to false;</span>
<span class='doccomment'>/// subcommands have independant version strings from their parents)</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** The version for the current command **and** this setting must be set **prior** to</span>
<span class='doccomment'>/// adding any child subcommands</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```no_run</span>
<span class='doccomment'>/// # use clap::{App, Arg, SubCommand, AppSettings};</span>
<span class='doccomment'>/// App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .version(&quot;v1.1&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::GlobalVersion)</span>
<span class='doccomment'>/// .subcommand(SubCommand::with_name(&quot;test&quot;))</span>
<span class='doccomment'>/// .get_matches();</span>
<span class='doccomment'>/// // running `$ myprog test --version` will display</span>
<span class='doccomment'>/// // &quot;myprog-test v1.1&quot;</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>GlobalVersion</span>,
<span class='doccomment'>/// Disables `-V` and `--version` for all subcommands (Defaults to false; subcommands have</span>
<span class='doccomment'>/// version flags)</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** This setting must be set **prior** adding any subcommands</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, SubCommand, AppSettings, ErrorKind};</span>
<span class='doccomment'>/// let res = App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .version(&quot;v1.1&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::VersionlessSubcommands)</span>
<span class='doccomment'>/// .subcommand(SubCommand::with_name(&quot;test&quot;))</span>
<span class='doccomment'>/// .get_matches_from_safe(vec![</span>
<span class='doccomment'>/// &quot;myprog&quot;, &quot;test&quot;, &quot;-V&quot;</span>
<span class='doccomment'>/// ]);</span>
<span class='doccomment'>/// assert!(res.is_err());</span>
<span class='doccomment'>/// assert_eq!(res.unwrap_err().kind, ErrorKind::UnknownArgument);</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>VersionlessSubcommands</span>,
<span class='doccomment'>/// Groups flags and options together presenting a more unified help message (a la `getopts` or</span>
<span class='doccomment'>/// `docopt` style). The default is the auto-generated help message groups flags, options</span>
<span class='doccomment'>/// separately.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** This setting is cosmetic only and does not affect any functionality.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```no_run</span>
<span class='doccomment'>/// # use clap::{App, Arg, SubCommand, AppSettings};</span>
<span class='doccomment'>/// App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::UnifiedHelpMessage)</span>
<span class='doccomment'>/// .get_matches();</span>
<span class='doccomment'>/// // running `myprog --help` will display a unified &quot;docopt&quot; or &quot;getopts&quot; style help message</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>UnifiedHelpMessage</span>,
<span class='doccomment'>/// Will display a message &quot;Press [ENTER]/[RETURN] to continue...&quot; and wait user before</span>
<span class='doccomment'>/// exiting</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// This is most useful when writing an application which is run from a GUI shortcut, or on</span>
<span class='doccomment'>/// Windows where a user tries to open the binary by double-clicking instead of using the</span>
<span class='doccomment'>/// command line.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** This setting is **not** recursive with subcommands, meaning if you wish this</span>
<span class='doccomment'>/// behavior for all subcommands, you must set this on each command (needing this is extremely</span>
<span class='doccomment'>/// rare)</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, Arg, AppSettings};</span>
<span class='doccomment'>/// App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::WaitOnError)</span>
<span class='doccomment'>/// # ;</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>WaitOnError</span>,
<span class='doccomment'>/// Specifies that the help text should be displayed (and then exit gracefully), if no</span>
<span class='doccomment'>/// subcommands are present at runtime (i.e. an empty run such as, `$ myprog`.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** This should *not* be used with `.subcommand_required()` as they do the same</span>
<span class='doccomment'>/// thing, except this prints the help text, and the other prints an error.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** If the user specifies arguments at runtime, but no subcommand the help text will</span>
<span class='doccomment'>/// still be displayed and exit. If this is *not* the desired result, consider using</span>
<span class='doccomment'>/// `ArgRequiredElseHelp` instead.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, Arg, AppSettings};</span>
<span class='doccomment'>/// App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::SubcommandRequiredElseHelp)</span>
<span class='doccomment'>/// # ;</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>SubcommandRequiredElseHelp</span>,
<span class='doccomment'>/// Specifies that this subcommand should be hidden from help messages</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, Arg, AppSettings, SubCommand};</span>
<span class='doccomment'>/// App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .subcommand(SubCommand::with_name(&quot;test&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::Hidden))</span>
<span class='doccomment'>/// # ;</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>Hidden</span>,
<span class='doccomment'>/// Specifies that the final positional argument is a &quot;VarArg&quot; and that `clap` should not</span>
<span class='doccomment'>/// attempt to parse any further args.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// The values of the trailing positional argument will contain all args from itself on.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** The final positional argument **must** have `.multiple(true)` or the usage string</span>
<span class='doccomment'>/// equivalent.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, Arg, AppSettings};</span>
<span class='doccomment'>/// let m = App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::TrailingVarArg)</span>
<span class='doccomment'>/// .arg(Arg::from_usage(&quot;&lt;cmd&gt;... &#39;commands to run&#39;&quot;))</span>
<span class='doccomment'>/// .get_matches_from(vec![&quot;myprog&quot;, &quot;arg1&quot;, &quot;-r&quot;, &quot;val1&quot;]);</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// let trail: Vec&lt;&amp;str&gt; = m.values_of(&quot;cmd&quot;).unwrap().collect();</span>
<span class='doccomment'>/// assert_eq!(trail, [&quot;arg1&quot;, &quot;-r&quot;, &quot;val1&quot;]);</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>TrailingVarArg</span>,
<span class='doccomment'>/// Specifies that the parser should not assume the first argument passed is the binary name.</span>
<span class='doccomment'>/// This is normally the case when using a &quot;daemon&quot; style mode, or an interactive CLI where one</span>
<span class='doccomment'>/// one would not normally type the binary or program name for each command.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, Arg, AppSettings};</span>
<span class='doccomment'>/// let m = App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::NoBinaryName)</span>
<span class='doccomment'>/// .arg(Arg::from_usage(&quot;&lt;cmd&gt;... &#39;commands to run&#39;&quot;))</span>
<span class='doccomment'>/// .get_matches_from(vec![&quot;command&quot;, &quot;set&quot;]);</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// let cmds: Vec&lt;&amp;str&gt; = m.values_of(&quot;cmd&quot;).unwrap().collect();</span>
<span class='doccomment'>/// assert_eq!(cmds, [&quot;command&quot;, &quot;set&quot;]);</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>NoBinaryName</span>,
<span class='doccomment'>/// Specifies that an unexpected argument positional arguments which would otherwise cause a</span>
<span class='doccomment'>/// `ErrorKind::UnknownArgument` error, should instead be treated as a subcommand in the</span>
<span class='doccomment'>/// `ArgMatches` struct.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** Use this setting with caution, as a truly unexpected argument (i.e. one that is</span>
<span class='doccomment'>/// *NOT* an external subcommand) will not cause an error and instead be treatd as a potential</span>
<span class='doccomment'>/// subcommand. You shoud inform the user appropriatly.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{App, AppSettings};</span>
<span class='doccomment'>/// // Assume there is an external subcommand named &quot;subcmd&quot;</span>
<span class='doccomment'>/// let m = App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::AllowExternalSubcommands)</span>
<span class='doccomment'>/// .get_matches_from(vec![</span>
<span class='doccomment'>/// &quot;myprog&quot;, &quot;subcmd&quot;, &quot;--option&quot;, &quot;value&quot;, &quot;-fff&quot;, &quot;--flag&quot;</span>
<span class='doccomment'>/// ]);</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// // All trailing arguments will be stored under the subcommand&#39;s sub-matches using a value</span>
<span class='doccomment'>/// // of the runtime subcommand name (in this case &quot;subcmd&quot;)</span>
<span class='doccomment'>/// match m.subcommand() {</span>
<span class='doccomment'>/// (external, Some(ext_m)) =&gt; {</span>
<span class='doccomment'>/// let ext_args: Vec&lt;&amp;str&gt; = ext_m.values_of(external).unwrap().collect();</span>
<span class='doccomment'>/// assert_eq!(ext_args, [&quot;--option&quot;, &quot;value&quot;, &quot;-fff&quot;, &quot;--flag&quot;]);</span>
<span class='doccomment'>/// },</span>
<span class='doccomment'>/// _ =&gt; {},</span>
<span class='doccomment'>/// }</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>AllowExternalSubcommands</span>,
<span class='doccomment'>/// Specifies that any invalid UTF-8 code points should be treated as an error and fail</span>
<span class='doccomment'>/// with a `ErrorKind::InvalidUtf8` error.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** This rule only applies to argument values, as flags, options, and subcommands</span>
<span class='doccomment'>/// themselves only allow valid UTF-8 code points.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Platform Specific</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// Non Windows systems only</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```ignore</span>
<span class='doccomment'>/// # use clap::{App, Arg, AppSettings, ErrorKind};</span>
<span class='doccomment'>/// use std::ffi::OsString;</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// let m = App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::StrictUtf8)</span>
<span class='doccomment'>/// .arg_from_usage(&quot;&lt;arg&gt; &#39;some positional arg&#39;&quot;)</span>
<span class='doccomment'>/// .get_matches_from_safe(</span>
<span class='doccomment'>/// vec![</span>
<span class='doccomment'>/// OsString::from(&quot;myprog&quot;),</span>
<span class='doccomment'>/// OsString::from_vec(vec![0xe9])]);</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// assert!(m.is_err());</span>
<span class='doccomment'>/// assert_eq!(m.unwrap_err().kind, ErrorKind::InvalidUtf8);</span>
<span class='doccomment'>/// }</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>StrictUtf8</span>,
<span class='doccomment'>/// Specifies that any invalid UTF-8 code points should *not* be treated as an error. This is</span>
<span class='doccomment'>/// the default behavior of `clap`</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** Using argument values with invalid UTF-8 code points requires using Either</span>
<span class='doccomment'>/// `ArgMatches::os_value(s)_of` or `ArgMatches::lossy_value(s)_of` for those particular</span>
<span class='doccomment'>/// arguments which may contain invalid UTF-8 values</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** This rule only applies to argument values, as flags, options, and subcommands</span>
<span class='doccomment'>/// themselves only allow valid UTF-8 code points.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Platform Specific</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// Non Windows systems only</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```ignore</span>
<span class='doccomment'>/// # use clap::{App, Arg, AppSettings};</span>
<span class='doccomment'>/// use std::ffi::OsString;</span>
<span class='doccomment'>/// use std::os::unix::ffi::OsStrExt;</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// let r = App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::StrictUtf8)</span>
<span class='doccomment'>/// .arg_from_usage(&quot;&lt;arg&gt; &#39;some positional arg&#39;&quot;)</span>
<span class='doccomment'>/// .get_matches_from_safe(</span>
<span class='doccomment'>/// vec![</span>
<span class='doccomment'>/// OsString::from(&quot;myprog&quot;),</span>
<span class='doccomment'>/// OsString::from_vec(vec![0xe9])]);</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// assert!(r.is_ok());</span>
<span class='doccomment'>/// let m = r.unwrap();</span>
<span class='doccomment'>/// assert_eq!(m.value_of_os(&quot;arg&quot;).unwrap().as_bytes(), &amp;[0xe9]);</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>AllowInvalidUtf8</span>,
<span class='doccomment'>/// Specifies that leading hyphens are allowed in argument *values*, such as negative numbers</span>
<span class='doccomment'>/// `-10`</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** This can only be set application wide and not on a per argument basis.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** Use this setting with caution as it silences certain circumstances which would</span>
<span class='doccomment'>/// otherwise be an error (such as accidentally forgetting to specify a value for leading</span>
<span class='doccomment'>/// option)</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```rust</span>
<span class='doccomment'>/// # use clap::{Arg, App, AppSettings};</span>
<span class='doccomment'>/// // Imagine you needed to represent negative numbers as well, such as -10</span>
<span class='doccomment'>/// let m = App::new(&quot;nums&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::AllowLeadingHyphen)</span>
<span class='doccomment'>/// .arg(Arg::with_name(&quot;neg&quot;).index(1))</span>
<span class='doccomment'>/// .get_matches_from(vec![</span>
<span class='doccomment'>/// &quot;nums&quot;, &quot;-20&quot;</span>
<span class='doccomment'>/// ]);</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// assert_eq!(m.value_of(&quot;neg&quot;), Some(&quot;-20&quot;));</span>
<span class='doccomment'>/// # ;</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>AllowLeadingHyphen</span>,
<span class='doccomment'>/// Tells `clap` *not* to print possible values when displaying help information. This can be</span>
<span class='doccomment'>/// useful if there are many values, or they are explained elsewhere.</span>
<span class='ident'>HidePossibleValuesInHelp</span>,
<span class='doccomment'>/// Places the help string for all arguments on the line after the argument</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** This setting is cosmetic only and does not affect any functionality.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```no_run</span>
<span class='doccomment'>/// # use clap::{App, Arg, SubCommand, AppSettings};</span>
<span class='doccomment'>/// App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::NextLineHelp)</span>
<span class='doccomment'>/// .get_matches();</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>NextLineHelp</span>,
<span class='doccomment'>/// Displays the arguments and subcommands in the help message in the order that they were</span>
<span class='doccomment'>/// declared in, vice alphabetically which is the default.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```no_run</span>
<span class='doccomment'>/// # use clap::{App, Arg, SubCommand, AppSettings};</span>
<span class='doccomment'>/// App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::DeriveDisplayOrder)</span>
<span class='doccomment'>/// .get_matches();</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>DeriveDisplayOrder</span>,
<span class='doccomment'>/// Uses colorized help messages.</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// **NOTE:** Must be compiled with the `color` cargo feature</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Platform Specific</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// This setting only applies to Unix, Linux, and OSX (i.e. non-Windows platforms)</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// # Examples</span>
<span class='doccomment'>///</span>
<span class='doccomment'>/// ```no_run</span>
<span class='doccomment'>/// # use clap::{App, Arg, SubCommand, AppSettings};</span>
<span class='doccomment'>/// App::new(&quot;myprog&quot;)</span>
<span class='doccomment'>/// .setting(AppSettings::ColoredHelp)</span>
<span class='doccomment'>/// .get_matches();</span>
<span class='doccomment'>/// ```</span>
<span class='ident'>ColoredHelp</span>,
<span class='attribute'>#[<span class='ident'>doc</span>(<span class='ident'>hidden</span>)]</span>
<span class='ident'>NeedsLongVersion</span>,
<span class='attribute'>#[<span class='ident'>doc</span>(<span class='ident'>hidden</span>)]</span>
<span class='ident'>NeedsLongHelp</span>,
<span class='attribute'>#[<span class='ident'>doc</span>(<span class='ident'>hidden</span>)]</span>
<span class='ident'>NeedsSubcommandHelp</span>,
<span class='attribute'>#[<span class='ident'>doc</span>(<span class='ident'>hidden</span>)]</span>
<span class='ident'>DisableVersion</span>,
}
<span class='kw'>impl</span> <span class='ident'>FromStr</span> <span class='kw'>for</span> <span class='ident'>AppSettings</span> {
<span class='kw'>type</span> <span class='prelude-val'>Err</span> <span class='op'>=</span> <span class='ident'>String</span>;
<span class='kw'>fn</span> <span class='ident'>from_str</span>(<span class='ident'>s</span>: <span class='kw-2'>&amp;</span><span class='ident'>str</span>) <span class='op'>-&gt;</span> <span class='prelude-ty'>Result</span><span class='op'>&lt;</span><span class='kw'>Self</span>, <span class='op'>&lt;</span><span class='kw'>Self</span> <span class='kw'>as</span> <span class='ident'>FromStr</span><span class='op'>&gt;</span>::<span class='prelude-val'>Err</span><span class='op'>&gt;</span> {
<span class='kw'>match</span> <span class='kw-2'>&amp;</span><span class='op'>*</span><span class='ident'>s</span>.<span class='ident'>to_ascii_lowercase</span>() {
<span class='string'>&quot;subcommandsnegatereqs&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>SubcommandsNegateReqs</span>),
<span class='string'>&quot;subcommandsrequired&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>SubcommandRequired</span>),
<span class='string'>&quot;argrequiredelsehelp&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>ArgRequiredElseHelp</span>),
<span class='string'>&quot;globalversion&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>GlobalVersion</span>),
<span class='string'>&quot;versionlesssubcommands&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>VersionlessSubcommands</span>),
<span class='string'>&quot;unifiedhelpmessage&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>UnifiedHelpMessage</span>),
<span class='string'>&quot;waitonerror&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>WaitOnError</span>),
<span class='string'>&quot;subcommandrequiredelsehelp&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>SubcommandRequiredElseHelp</span>),
<span class='string'>&quot;hidden&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>Hidden</span>),
<span class='string'>&quot;allowexternalsubcommands&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>AllowExternalSubcommands</span>),
<span class='string'>&quot;trailingvararg&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>TrailingVarArg</span>),
<span class='string'>&quot;nobinaryname&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>NoBinaryName</span>),
<span class='string'>&quot;strictutf8&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>StrictUtf8</span>),
<span class='string'>&quot;allowinvalidutf8&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>AllowInvalidUtf8</span>),
<span class='string'>&quot;allowleadinghyphen&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>AllowLeadingHyphen</span>),
<span class='string'>&quot;hidepossiblevaluesinhelp&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>HidePossibleValuesInHelp</span>),
<span class='string'>&quot;nextlinehelp&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>NextLineHelp</span>),
<span class='string'>&quot;derivedisplayorder&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>DeriveDisplayOrder</span>),
<span class='string'>&quot;coloredhelp&quot;</span> <span class='op'>=&gt;</span> <span class='prelude-val'>Ok</span>(<span class='ident'>AppSettings</span>::<span class='ident'>ColoredHelp</span>),
_ <span class='op'>=&gt;</span> <span class='prelude-val'>Err</span>(<span class='string'>&quot;unknown AppSetting, cannot convert from str&quot;</span>.<span class='ident'>to_owned</span>()),
}
}
}
<span class='attribute'>#[<span class='ident'>cfg</span>(<span class='ident'>test</span>)]</span>
<span class='kw'>mod</span> <span class='ident'>test</span> {
<span class='kw'>use</span> <span class='kw'>super</span>::<span class='ident'>AppSettings</span>;
<span class='attribute'>#[<span class='ident'>test</span>]</span>
<span class='kw'>fn</span> <span class='ident'>app_settings_fromstr</span>() {
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;subcommandsnegatereqs&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>SubcommandsNegateReqs</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;subcommandsrequired&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>SubcommandRequired</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;argrequiredelsehelp&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>ArgRequiredElseHelp</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;globalversion&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>GlobalVersion</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;versionlesssubcommands&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>VersionlessSubcommands</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;unifiedhelpmessage&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>UnifiedHelpMessage</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;waitonerror&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>WaitOnError</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;subcommandrequiredelsehelp&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>SubcommandRequiredElseHelp</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;allowexternalsubcommands&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>AllowExternalSubcommands</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;trailingvararg&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>TrailingVarArg</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;nobinaryname&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>NoBinaryName</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;strictutf8&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>StrictUtf8</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;allowinvalidutf8&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>AllowInvalidUtf8</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;allowleadinghyphen&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>AllowLeadingHyphen</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;hidepossiblevaluesinhelp&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>HidePossibleValuesInHelp</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;coloredhelp&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>ColoredHelp</span>);
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='string'>&quot;hidden&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>unwrap</span>(), <span class='ident'>AppSettings</span>::<span class='ident'>Hidden</span>);
<span class='macro'>assert</span><span class='macro'>!</span>(<span class='string'>&quot;hahahaha&quot;</span>.<span class='ident'>parse</span>::<span class='op'>&lt;</span><span class='ident'>AppSettings</span><span class='op'>&gt;</span>().<span class='ident'>is_err</span>());
}
}
</pre>
</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>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt>&larrb;</dt>
<dd>Move up in search results</dd>
<dt>&rarrb;</dt>
<dd>Move down in search results</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "clap";
window.playgroundUrl = "";
</script>
<script src="../../../jquery.js"></script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>