Skip to content

Commit

Permalink
api: provides default_value_os and default_value_if[s]_os
Browse files Browse the repository at this point in the history
One can now define default values that contain invalid UTF-8.

The underlying implementation has also been changed to use OsStrs in order to avoid duplication
of code and provide the new APIs basically for free.

Closes #849
  • Loading branch information
kbknapp committed Feb 21, 2017
1 parent fb7057c commit 0f2a378
Show file tree
Hide file tree
Showing 8 changed files with 324 additions and 198 deletions.
6 changes: 3 additions & 3 deletions src/app/help.rs
Original file line number Diff line number Diff line change
Expand Up @@ -491,12 +491,12 @@ impl<'a> Help<'a> {
debugln!("Help::spec_vals: a={}", a);
let mut spec_vals = vec![];
if let Some(pv) = a.default_val() {
debugln!("Help::spec_vals: Found default value...[{}]", pv);
debugln!("Help::spec_vals: Found default value...[{:?}]", pv);
spec_vals.push(format!(" [default: {}]",
if self.color {
self.cizer.good(pv)
self.cizer.good(pv.to_string_lossy())
} else {
Format::None(pv)
Format::None(pv.to_string_lossy())
}));
}
if let Some(ref aliases) = a.aliases() {
Expand Down
4 changes: 2 additions & 2 deletions src/app/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1558,8 +1558,8 @@ impl<'n, 'e> AnyArg<'n, 'e> for App<'n, 'e> {
fn val_delim(&self) -> Option<char> { None }
fn takes_value(&self) -> bool { true }
fn help(&self) -> Option<&'e str> { self.p.meta.about }
fn default_val(&self) -> Option<&'n str> { None }
fn default_vals_ifs(&self) -> Option<vec_map::Values<(&'n str, Option<&'e str>, &'e str)>> {None}
fn default_val(&self) -> Option<&'e OsStr> { None }
fn default_vals_ifs(&self) -> Option<vec_map::Values<(&'n str, Option<&'e OsStr>, &'e OsStr)>> {None}
fn longest_filter(&self) -> bool { true }
fn aliases(&self) -> Option<Vec<&'e str>> {
if let Some(ref aliases) = self.p.meta.aliases {
Expand Down
4 changes: 2 additions & 2 deletions src/args/any_arg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ pub trait AnyArg<'n, 'e>: std_fmt::Display {
fn takes_value(&self) -> bool;
fn val_names(&self) -> Option<&VecMap<&'e str>>;
fn help(&self) -> Option<&'e str>;
fn default_val(&self) -> Option<&'n str>;
fn default_vals_ifs(&self) -> Option<vec_map::Values<(&'n str, Option<&'e str>, &'e str)>>;
fn default_val(&self) -> Option<&'e OsStr>;
fn default_vals_ifs(&self) -> Option<vec_map::Values<(&'n str, Option<&'e OsStr>, &'e OsStr)>>;
fn longest_filter(&self) -> bool;
fn val_terminator(&self) -> Option<&'e str>;
}
Expand Down
Loading

0 comments on commit 0f2a378

Please sign in to comment.