summaryrefslogtreecommitdiff
path: root/crates/typst-macros
diff options
context:
space:
mode:
Diffstat (limited to 'crates/typst-macros')
-rw-r--r--crates/typst-macros/src/elem.rs26
1 files changed, 15 insertions, 11 deletions
diff --git a/crates/typst-macros/src/elem.rs b/crates/typst-macros/src/elem.rs
index 34c54737..2199ec92 100644
--- a/crates/typst-macros/src/elem.rs
+++ b/crates/typst-macros/src/elem.rs
@@ -834,17 +834,21 @@ fn create_native_elem_impl(element: &Elem) -> TokenStream {
});
// Creation of the fields dictionary for inherent fields.
- let field_dict = element.inherent_fields().clone().map(|field| {
- let name = &field.name;
- let field_ident = &field.ident;
- let field_call = quote! { ::ecow::EcoString::from(#name).into() };
- quote! {
- fields.insert(
- #field_call,
- #foundations::IntoValue::into_value(self.#field_ident.clone())
- );
- }
- });
+ let field_dict = element
+ .inherent_fields()
+ .filter(|field| !field.internal)
+ .clone()
+ .map(|field| {
+ let name = &field.name;
+ let field_ident = &field.ident;
+ let field_call = quote! { ::ecow::EcoString::from(#name).into() };
+ quote! {
+ fields.insert(
+ #field_call,
+ #foundations::IntoValue::into_value(self.#field_ident.clone())
+ );
+ }
+ });
// Creation of the fields dictionary for optional fields.
let field_opt_dict = element