blob: 1816c72b572b04bbc1053c0b750c32ad8dd88c35 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
/// Helper function that appends extra documentation to [`crate::Builder`] methods that support regular
/// expressions in their input.
macro_rules! regex_option {
($(#[$attrs:meta])* pub fn $($tokens:tt)*) => {
$(#[$attrs])*
///
/// Regular expressions are supported. Check the [regular expression
/// arguments](./struct.Builder.html#regular-expression-arguments) section and the
/// [regex](https://docs.rs/regex) crate documentation for further information.
pub fn $($tokens)*
};
}
/// Helper macro to set the default value of each option.
///
/// This macro is an internal implementation detail of the `options` macro and should not be used
/// directly.
macro_rules! default {
() => {
Default::default()
};
($expr:expr) => {
$expr
};
}
/// Helper macro to set the conversion to CLI arguments for each option.
///
/// This macro is an internal implementation detail of the `options` macro and should not be used
/// directly.
macro_rules! as_args {
($flag:literal) => {
|field, args| AsArgs::as_args(field, args, $flag)
};
($expr:expr) => {
$expr
};
}
/// Helper function to ignore an option when converting it into CLI arguments.
///
/// This function is only used inside `options` and should not be used in other contexts.
pub(super) fn ignore<T>(_: &T, _: &mut Vec<String>) {}
|