Whitelisting allows us to be precise about which type, function, and global
variable definitions bindgen
generates bindings for. By default, if we don't
specify any whitelisting rules, everything is considered whitelisted. This may
not be desirable because of either
- the generated bindings contain a lot of extra definitions we don't plan on using, or
- the header file contains C++ features for which Rust does not have a corresponding form (such as partial template specialization), and we would like to avoid these definitions
If we specify whitelisting rules, then bindgen
will only generate bindings to
types, functions, and global variables that match the whitelisting rules, or are
transitively used by a definition that matches them.
bindgen::Builder::whitelist_type
bindgen::Builder::whitelist_function
bindgen::Builder::whitelist_var
--whitelist-type <type>
--whitelist-function <function>
--whitelist-var <var>
None.