summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gen.rs4
-rw-r--r--src/parser.rs2
-rw-r--r--src/types.rs2
3 files changed, 8 insertions, 0 deletions
diff --git a/src/gen.rs b/src/gen.rs
index 564e8509..fc2cadb8 100644
--- a/src/gen.rs
+++ b/src/gen.rs
@@ -770,6 +770,10 @@ fn ctypedef_to_rs(ctx: &mut GenCtx, ty: TypeInfo) -> Vec<P<ast::Item>> {
.type_(&rust_name).build_ty(P(rust_ty))
}
+ if ty.hide {
+ return vec![];
+ }
+
if ty.opaque {
return mk_opaque_struct(ctx, &ty.name, &ty.layout);
}
diff --git a/src/parser.rs b/src/parser.rs
index 49d62b81..68578723 100644
--- a/src/parser.rs
+++ b/src/parser.rs
@@ -211,8 +211,10 @@ fn decl_name(ctx: &mut ClangParserCtx, cursor: &Cursor) -> Global {
}
CXCursor_TypeAliasDecl | CXCursor_TypedefDecl => {
let opaque = ctx.options.opaque_types.iter().any(|name| *name == spelling);
+ let hide = ctx.options.blacklist_type.iter().any(|name| *name == spelling);
let mut ti = TypeInfo::new(spelling, ctx.current_module_id, TVoid, layout);
ti.opaque = opaque;
+ ti.hide = hide;
let ti = Rc::new(RefCell::new(ti));
GType(ti)
diff --git a/src/types.rs b/src/types.rs
index 9eaa3eb8..60af3f59 100644
--- a/src/types.rs
+++ b/src/types.rs
@@ -821,6 +821,7 @@ pub struct TypeInfo {
// TODO: Is this really useful?
// You can just make opaque the underlying type
pub opaque: bool,
+ pub hide: bool,
}
impl TypeInfo {
@@ -832,6 +833,7 @@ impl TypeInfo {
ty: ty,
layout: layout,
opaque: false,
+ hide: false,
}
}
}