rust/qemu-api-macros: make derive(Object) friendly when missing parent

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Link: https://lore.kernel.org/r/20250826133132.4064478-5-marcandre.lureau@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Marc-André Lureau
2025-08-27 10:57:04 +02:00
committed by Paolo Bonzini
parent 9a6d6ae8af
commit 96f2c80fed
+9 -1
View File
@@ -85,7 +85,15 @@ fn derive_object_or_error(input: DeriveInput) -> Result<proc_macro2::TokenStream
is_c_repr(&input, "#[derive(Object)]")?;
let name = &input.ident;
let parent = &get_fields(&input, "#[derive(Object)]")?[0].ident;
let parent = &get_fields(&input, "#[derive(Object)]")?
.get(0)
.ok_or_else(|| {
Error::new(
input.ident.span(),
"#[derive(Object)] requires a parent field",
)
})?
.ident;
Ok(quote! {
::qemu_api::assert_field_type!(#name, #parent,