mirror of
https://github.com/Lokathor/bytemuck.git
synced 2024-11-25 00:02:22 +00:00
Blame struct name, better error for padding (#35)
This commit is contained in:
parent
e053f8b456
commit
19e61623d7
@ -210,17 +210,16 @@ fn generate_assert_no_padding(
|
||||
input: &DeriveInput,
|
||||
) -> Result<TokenStream, &'static str> {
|
||||
let struct_type = &input.ident;
|
||||
let span = input.span();
|
||||
let span = input.ident.span();
|
||||
let fields = get_struct_fields(input)?;
|
||||
|
||||
let field_types = get_field_types(&fields);
|
||||
let struct_size =
|
||||
quote_spanned!(span => ::core::mem::size_of::<#struct_type>());
|
||||
let size_sum =
|
||||
quote_spanned!(span => 0 #( + ::core::mem::size_of::<#field_types>() )*);
|
||||
|
||||
Ok(quote_spanned! {span => const _: fn() = || {
|
||||
let _ = ::core::mem::transmute::<[u8; #struct_size], [u8; #size_sum]>;
|
||||
struct TypeWithoutPadding([u8; #size_sum]);
|
||||
let _ = ::core::mem::transmute::<#struct_type, TypeWithoutPadding>;
|
||||
};})
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user