diff options
Diffstat (limited to 'macros/src/func.rs')
| -rw-r--r-- | macros/src/func.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/macros/src/func.rs b/macros/src/func.rs index 87324120..07ecdd78 100644 --- a/macros/src/func.rs +++ b/macros/src/func.rs @@ -115,8 +115,8 @@ fn create(func: &Func) -> TokenStream { let params = params.iter().map(create_param_info); quote! { #[doc = #docs] - #vis fn #ident() -> ::typst::eval::NativeFunc { - ::typst::eval::NativeFunc { + #vis fn #ident() -> &'static ::typst::eval::NativeFunc { + static FUNC: ::typst::eval::NativeFunc = ::typst::eval::NativeFunc { func: |vm, args| { #(#handlers)* #[allow(unreachable_code)] @@ -130,7 +130,8 @@ fn create(func: &Func) -> TokenStream { returns: ::std::vec![#(#returns),*], category: #category, }), - } + }; + &FUNC } } } |
