Skip to content

Commit ed54edf

Browse files
committed
Made push_opt a macro to improve readability
1 parent d0fc2c4 commit ed54edf

File tree

1 file changed

+21
-23
lines changed

1 file changed

+21
-23
lines changed

crates/common/src/cli.rs

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -413,29 +413,27 @@ mod tests {
413413
fn build_args_vec(&self) -> Vec<String> {
414414
let mut args = vec!["testing".to_string()];
415415

416-
let mut push_opt = |flag: &str, value: Option<String>| {
417-
if let Some(v) = value {
418-
args.push(flag.to_string());
419-
args.push(v);
420-
}
421-
};
422-
423-
push_opt("--node-socket-path", self.node_socket_path.clone());
424-
push_opt("--server-address", self.server_address.clone());
425-
push_opt("--server-port", self.server_port.map(|p| p.to_string()));
426-
push_opt(
427-
"--server-concurrency-limit",
428-
self.server_concurrency_limit.map(|l| l.to_string()),
429-
);
430-
push_opt("--log-level", self.log_level.clone());
431-
push_opt("--mode", self.mode.clone());
432-
push_opt("--reward-address", self.reward_address.clone());
433-
push_opt("--secret", self.secret.clone());
434-
push_opt("--data-node", self.data_node.clone());
435-
push_opt(
436-
"--data-node-timeout-sec",
437-
self.data_node_timeout_sec.clone(),
438-
);
416+
macro_rules! push_opt {
417+
($flag:expr, $field:expr) => {
418+
// 'ref v' borrows the value inside the Option.
419+
// This works for both String (avoiding move) and usize (Copy).
420+
if let Some(ref v) = $field {
421+
args.push($flag.to_string());
422+
args.push(v.to_string());
423+
}
424+
};
425+
}
426+
427+
push_opt!("--node-socket-path", self.node_socket_path);
428+
push_opt!("--server-address", self.server_address);
429+
push_opt!("--server-port", self.server_port);
430+
push_opt!("--server-concurrency-limit", self.server_concurrency_limit);
431+
push_opt!("--log-level", self.log_level);
432+
push_opt!("--mode", self.mode);
433+
push_opt!("--reward-address", self.reward_address);
434+
push_opt!("--secret", self.secret);
435+
push_opt!("--data-node", self.data_node);
436+
push_opt!("--data-node-timeout-sec", self.data_node_timeout_sec);
439437

440438
// optional parameters
441439
if self.solitary {

0 commit comments

Comments
 (0)