|
867 | 867 | <span id="867">867</span>
|
868 | 868 | <span id="868">868</span>
|
869 | 869 | <span id="869">869</span>
|
| 870 | +<span id="870">870</span> |
| 871 | +<span id="871">871</span> |
| 872 | +<span id="872">872</span> |
| 873 | +<span id="873">873</span> |
| 874 | +<span id="874">874</span> |
870 | 875 | </pre><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.</span>
|
871 | 876 | <span class="comment">//</span>
|
872 | 877 | <span class="comment">// (c) Fangxu Hu <framlog@gmail.com></span>
|
|
893 | 898 | <span class="kw">use</span> <span class="ident">clap</span>::{<span class="ident">crate_version</span>, <span class="ident">Arg</span>, <span class="ident">ArgMatches</span>, <span class="ident">Command</span>, <span class="ident">ValueSource</span>};
|
894 | 899 |
|
895 | 900 | <span class="kw">use</span> <span class="ident">std::error::Error</span>;
|
| 901 | +<span class="kw">use</span> <span class="ident">std::ffi::OsString</span>; |
896 | 902 | <span class="kw">use</span> <span class="ident">std::fmt</span>;
|
897 | 903 | <span class="kw">use</span> <span class="ident">std::path::Path</span>;
|
898 | 904 |
|
|
1041 | 1047 | <span class="kw">impl</span> <span class="ident">Options</span> {
|
1042 | 1048 | <span class="doccomment">/// Convert command-line arguments into [`Options`].</span>
|
1043 | 1049 | <span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">matches</span>: <span class="kw-2">&</span><span class="ident">ArgMatches</span>) -> <span class="prelude-ty">Result</span><span class="op"><</span><span class="self">Self</span>, <span class="ident">OptionsError</span><span class="op">></span> {
|
1044 |
| - <span class="kw">let</span> <span class="ident">include</span> <span class="op">=</span> <span class="ident">matches</span>.<span class="ident">values_of_lossy</span>(<span class="ident">OPT_TYPE</span>); |
1045 |
| - <span class="kw">let</span> <span class="ident">exclude</span> <span class="op">=</span> <span class="ident">matches</span>.<span class="ident">values_of_lossy</span>(<span class="ident">OPT_EXCLUDE_TYPE</span>); |
| 1050 | + <span class="kw">let</span> <span class="ident">include</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span><span class="op">></span> <span class="op">=</span> <span class="ident">matches</span> |
| 1051 | + .<span class="ident">get_many</span>::<span class="op"><</span><span class="ident">OsString</span><span class="op">></span>(<span class="ident">OPT_TYPE</span>) |
| 1052 | + .<span class="ident">map</span>(<span class="op">|</span><span class="ident">v</span><span class="op">|</span> <span class="ident">v</span>.<span class="ident">map</span>(<span class="op">|</span><span class="ident">s</span><span class="op">|</span> <span class="ident">s</span>.<span class="ident">to_string_lossy</span>().<span class="ident">to_string</span>()).<span class="ident">collect</span>()); |
| 1053 | + <span class="kw">let</span> <span class="ident">exclude</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span><span class="op">></span> <span class="op">=</span> <span class="ident">matches</span> |
| 1054 | + .<span class="ident">get_many</span>::<span class="op"><</span><span class="ident">OsString</span><span class="op">></span>(<span class="ident">OPT_EXCLUDE_TYPE</span>) |
| 1055 | + .<span class="ident">map</span>(<span class="op">|</span><span class="ident">v</span><span class="op">|</span> <span class="ident">v</span>.<span class="ident">map</span>(<span class="op">|</span><span class="ident">s</span><span class="op">|</span> <span class="ident">s</span>.<span class="ident">to_string_lossy</span>().<span class="ident">to_string</span>()).<span class="ident">collect</span>()); |
1046 | 1056 |
|
1047 | 1057 | <span class="kw">if</span> <span class="kw">let</span> (<span class="prelude-val">Some</span>(<span class="ident">include</span>), <span class="prelude-val">Some</span>(<span class="ident">exclude</span>)) <span class="op">=</span> (<span class="kw-2">&</span><span class="ident">include</span>, <span class="kw-2">&</span><span class="ident">exclude</span>) {
|
1048 | 1058 | <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">types</span>) <span class="op">=</span> <span class="ident"><span class="self">Self</span>::get_intersected_types</span>(<span class="ident">include</span>, <span class="ident">exclude</span>) {
|
|
0 commit comments