summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index b7608ce2..039bd39a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -311,6 +311,20 @@ impl Builder {
})
.count();
+ self.options
+ .blacklisted_items
+ .get_items()
+ .iter()
+ .map(|item| {
+ output_vector.push("--blacklist-item".into());
+ output_vector.push(
+ item.trim_left_matches("^")
+ .trim_right_matches("$")
+ .into(),
+ );
+ })
+ .count();
+
if !self.options.layout_tests {
output_vector.push("--no-layout-tests".into());
}
@@ -754,6 +768,14 @@ impl Builder {
self
}
+ /// Hide the given item from the generated bindings, regardless of
+ /// whether it's a type, function, module, etc. Regular
+ /// expressions are supported.
+ pub fn blacklist_item<T: AsRef<str>>(mut self, arg: T) -> Builder {
+ self.options.blacklisted_items.insert(arg);
+ self
+ }
+
/// Treat the given type as opaque in the generated bindings. Regular
/// expressions are supported.
pub fn opaque_type<T: AsRef<str>>(mut self, arg: T) -> Builder {
@@ -1313,6 +1335,10 @@ struct BindgenOptions {
/// in the generated code.
blacklisted_functions: RegexSet,
+ /// The set of items, regardless of item-type, that have been
+ /// blacklisted and should not appear in the generated code.
+ blacklisted_items: RegexSet,
+
/// The set of types that should be treated as opaque structures in the
/// generated code.
opaque_types: RegexSet,
@@ -1531,6 +1557,7 @@ impl BindgenOptions {
self.whitelisted_functions.build();
self.blacklisted_types.build();
self.blacklisted_functions.build();
+ self.blacklisted_items.build();
self.opaque_types.build();
self.bitfield_enums.build();
self.constified_enums.build();
@@ -1564,6 +1591,7 @@ impl Default for BindgenOptions {
rust_features: rust_target.into(),
blacklisted_types: Default::default(),
blacklisted_functions: Default::default(),
+ blacklisted_items: Default::default(),
opaque_types: Default::default(),
rustfmt_path: Default::default(),
whitelisted_types: Default::default(),