summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2024-04-25 00:25:05 +0200
committerJoel Klinghed <the_jk@spawned.biz>2024-04-25 00:25:05 +0200
commit0f5874ea7c5b25152f448d8c46efee50b1c023ad (patch)
tree0d26427b7a1a91fb1f051f2681b715d2265c8238
parent4555ccb38a0fc325240c338e2046f24df1c82cef (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.rs12
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;