summaryrefslogtreecommitdiff
path: root/macros/src/func.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/func.rs')
-rw-r--r--macros/src/func.rs7
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
}
}
}