diff options
-rw-r--r-- | src/gen.rs | 4 | ||||
-rw-r--r-- | src/parser.rs | 2 | ||||
-rw-r--r-- | src/types.rs | 2 |
3 files changed, 8 insertions, 0 deletions
@@ -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, } } } |