bindgen/options/
helpers.rs

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