Skip to content

Commit ed97be6

Browse files
committed
Support #[repr(packed)] in #[derive(H5Type)]
1 parent 8195fce commit ed97be6

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

hdf5-derive/src/lib.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,8 @@ fn impl_trait(
149149
if fields.is_empty() {
150150
panic!("Cannot derive H5Type for empty structs");
151151
}
152-
find_repr(attrs, &["C"]).expect("H5Type requires #[repr(C)] for structs");
152+
find_repr(attrs, &["C", "packed"])
153+
.expect("H5Type requires #[repr(C)] or #[repr(packed)] for structs");
153154
let types = pluck(fields.iter(), |f| f.ty.clone());
154155
let fields = pluck(fields.iter(), |f| f.ident.clone().unwrap());
155156
let names = fields.iter().map(|f| f.to_string()).collect::<Vec<_>>();
@@ -166,7 +167,8 @@ fn impl_trait(
166167
if fields.is_empty() {
167168
panic!("Cannot derive H5Type for empty tuple structs");
168169
}
169-
find_repr(attrs, &["C"]).expect("H5Type requires #[repr(C)] for structs");
170+
find_repr(attrs, &["C", "packed"])
171+
.expect("H5Type requires #[repr(C)] or #[repr(packed)] for structs");
170172
let names = (0..fields.len()).map(|f| f.to_string()).collect::<Vec<_>>();
171173
let types = pluck(fields.iter(), |f| f.ty.clone());
172174
impl_compound(ty, ty_generics, &index, &names, &types)

0 commit comments

Comments
 (0)