/// 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, _: &mut Vec) {}