diff --git a/crates/xml/derive/src/field.rs b/crates/xml/derive/src/field.rs index 3196805..bf13cbf 100644 --- a/crates/xml/derive/src/field.rs +++ b/crates/xml/derive/src/field.rs @@ -157,7 +157,8 @@ impl Field { (false, true, false) => quote! { builder.#builder_field_ident }, (false, false, true) => quote! { builder.#builder_field_ident }, (false, false, false) => { - quote! { builder.#builder_field_ident.expect("todo: handle missing field") } + let field_ident = self.field_ident().into_token_stream().to_string(); + quote! { builder.#builder_field_ident.ok_or(::rustical_xml::XmlDeError::MissingField(#field_ident))? } } }; quote! { #target_field_index: #builder_value }