You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tauri-plugins-workspace/plugins/cli/src/parser/macros.rs

48 lines
1.2 KiB

// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
macro_rules! bind_string_arg {
($arg:expr, $clap_arg:expr, $arg_name:ident, $clap_field:ident) => {{
let arg = $arg;
let mut clap_arg = $clap_arg;
if let Some(value) = &arg.$arg_name {
clap_arg = clap_arg.$clap_field(value);
}
clap_arg
}};
}
macro_rules! bind_value_arg {
($arg:expr, $clap_arg:expr, $field:ident) => {{
let arg = $arg;
let mut clap_arg = $clap_arg;
if let Some(value) = arg.$field {
clap_arg = clap_arg.$field(value);
}
clap_arg
}};
}
macro_rules! bind_string_slice_arg {
($arg:expr, $clap_arg:expr, $field:ident) => {{
let arg = $arg;
let mut clap_arg = $clap_arg;
if let Some(value) = &arg.$field {
clap_arg = clap_arg.$field(value);
}
clap_arg
}};
}
macro_rules! bind_if_arg {
($arg:expr, $clap_arg:expr, $field:ident) => {{
let arg = $arg;
let mut clap_arg = $clap_arg;
if let Some((value, arg)) = &arg.$field {
clap_arg = clap_arg.$field(value, arg);
}
clap_arg
}};
}