Skip to content

Commit 827f57c

Browse files
Add FieldInfo::field_type_name
The relevance of making a ield private may depend on a field's type. Some fields should be protected against manipulation by Rust code for the same reason `Vec::set_len` is `unsafe`.
1 parent 7600bf8 commit 827f57c

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

bindgen/callbacks.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,4 +205,6 @@ pub struct FieldInfo<'a> {
205205
pub type_name: &'a str,
206206
/// The name of the field.
207207
pub field_name: &'a str,
208+
/// The name of the type of the field.
209+
pub field_type_name: Option<&'a str>,
208210
}

bindgen/codegen/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1515,6 +1515,7 @@ impl<'a> FieldCodegen<'a> for FieldData {
15151515
cb.field_visibility(FieldInfo {
15161516
type_name: &parent_item.canonical_name(ctx),
15171517
field_name,
1518+
field_type_name: field_ty.name(),
15181519
})
15191520
}),
15201521
self.annotations(),
@@ -1889,6 +1890,7 @@ impl<'a> FieldCodegen<'a> for Bitfield {
18891890

18901891
let bitfield_ty_item = ctx.resolve_item(self.ty());
18911892
let bitfield_ty = bitfield_ty_item.expect_type();
1893+
let bitfield_ty_ident = bitfield_ty.name();
18921894

18931895
let bitfield_ty_layout = bitfield_ty
18941896
.layout(ctx)
@@ -1916,6 +1918,7 @@ impl<'a> FieldCodegen<'a> for Bitfield {
19161918
cb.field_visibility(FieldInfo {
19171919
type_name: &parent_item.canonical_name(ctx),
19181920
field_name,
1921+
field_type_name: bitfield_ty_ident,
19191922
})
19201923
})
19211924
});

0 commit comments

Comments
 (0)