diff options
| author | Joel Klinghed <the_jk@spawned.biz> | 2024-04-25 00:25:05 +0200 |
|---|---|---|
| committer | Joel Klinghed <the_jk@spawned.biz> | 2024-04-25 00:25:05 +0200 |
| commit | 0f5874ea7c5b25152f448d8c46efee50b1c023ad (patch) | |
| tree | 0d26427b7a1a91fb1f051f2681b715d2265c8238 | |
| parent | 4555ccb38a0fc325240c338e2046f24df1c82cef (diff) | |
args: Borrow string when printing it
Seems like a better default, unsure if it made any difference here
tho.
| -rw-r--r-- | src/args.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/args.rs b/src/args.rs index 5081a15..919b41a 100644 --- a/src/args.rs +++ b/src/args.rs @@ -108,7 +108,7 @@ pub trait Parser { }); } - fn print_help_fn(&self, options: &Options, println: &dyn Fn(String)); + fn print_help_fn(&self, options: &Options, println: &dyn Fn(&String)); } #[allow(dead_code)] @@ -117,19 +117,19 @@ pub struct LongOnlyParser {} #[allow(dead_code)] pub struct ShortAndLongParser {} -fn print_list(list: Vec<(String, &str)>, println: &dyn Fn(String)) { +fn print_list(list: Vec<(String, &str)>, println: &dyn Fn(&String)) { let mut left_len: usize = 0; for (left, _) in &list { left_len = std::cmp::max(left_len, left.len()); } for (left, right) in &list { let mut right_lines = right.split('\n'); - println(format!( + println(&format!( "{left:<left_len$} {}", right_lines.next().unwrap() )); for right_line in right_lines { - println(format!("{:<left_len$} {right_line}", "")); + println(&format!("{:<left_len$} {right_line}", "")); } } } @@ -197,7 +197,7 @@ impl Parser for LongOnlyParser { Ok(Arguments { program, args: ret }) } - fn print_help_fn(&self, options: &Options, println: &dyn Fn(String)) { + fn print_help_fn(&self, options: &Options, println: &dyn Fn(&String)) { let mut lines = Vec::new(); for option in &options.options { let left = match option.value_req { @@ -297,7 +297,7 @@ impl Parser for ShortAndLongParser { Ok(Arguments { program, args: ret }) } - fn print_help_fn(&self, options: &Options, println: &dyn Fn(String)) { + fn print_help_fn(&self, options: &Options, println: &dyn Fn(&String)) { let mut lines = Vec::new(); for option in &options.options { let left: String; |
