]>
git.proxmox.com Git - rustc.git/blob - src/vendor/clap/src/args/arg_builder/valued.rs
2 use std
::ffi
::{OsStr, OsString}
;
8 #[allow(missing_debug_implementations)]
10 pub struct Valued
<'a
, 'b
>
13 pub possible_vals
: Option
<Vec
<&'b
str>>,
14 pub val_names
: Option
<VecMap
<&'b
str>>,
15 pub num_vals
: Option
<u64>,
16 pub max_vals
: Option
<u64>,
17 pub min_vals
: Option
<u64>,
18 pub validator
: Option
<Rc
<Fn(String
) -> Result
<(), String
>>>,
19 pub validator_os
: Option
<Rc
<Fn(&OsStr
) -> Result
<(), OsString
>>>,
20 pub val_delim
: Option
<char>,
21 pub default_val
: Option
<&'b OsStr
>,
22 pub default_vals_ifs
: Option
<VecMap
<(&'a
str, Option
<&'b OsStr
>, &'b OsStr
)>>,
23 pub terminator
: Option
<&'b
str>,
26 impl<'n
, 'e
> Default
for Valued
<'n
, 'e
> {
27 fn default() -> Self {
38 default_vals_ifs
: None
,
44 impl<'n
, 'e
> Valued
<'n
, 'e
> {
45 pub fn fill_in(&mut self) {
46 if let Some(ref vec
) = self.val_names
{
48 self.num_vals
= Some(vec
.len() as u64);
54 impl<'n
, 'e
, 'z
> From
<&'z Arg
<'n
, 'e
>> for Valued
<'n
, 'e
> {
55 fn from(a
: &'z Arg
<'n
, 'e
>) -> Self {
56 let mut v
= a
.v
.clone();
57 if let Some(ref vec
) = a
.v
.val_names
{
59 v
.num_vals
= Some(vec
.len() as u64);