summaryrefslogtreecommitdiff
path: root/macros/src/node.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/node.rs')
-rw-r--r--macros/src/node.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/macros/src/node.rs b/macros/src/node.rs
index b92dabcc..45e91b2e 100644
--- a/macros/src/node.rs
+++ b/macros/src/node.rs
@@ -227,6 +227,9 @@ fn create(node: &Node) -> Result<TokenStream> {
#construct_func
#set_func
#field_method
+ }
+
+ unsafe impl<#params> ::typst::model::Capable for #self_ty {
#vtable_method
}
};
@@ -411,9 +414,9 @@ fn create_property_module(node: &Node, property: &Property) -> (syn::Type, syn::
fn clone(&self) -> Self { *self }
}
- impl<'a, #params> ::typst::model::Key<'a> for #key {
+ impl<#params> ::typst::model::Key for #key {
type Value = #value_ty;
- type Output = #output_ty;
+ type Output<'a> = #output_ty;
#name_const
#node_func
#get_method
@@ -492,10 +495,10 @@ fn create_property_get_method(property: &Property) -> syn::ImplItemMethod {
};
parse_quote! {
- fn get(
+ fn get<'a>(
chain: ::typst::model::StyleChain<'a>,
mut values: impl ::std::iter::Iterator<Item = &'a Self::Value>,
- ) -> Self::Output {
+ ) -> Self::Output<'a> {
#value
}
}