From 30d6c070c1de3da708cacf459f4cc016c374563a Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sun, 19 Mar 2023 23:49:35 +0100 Subject: More efficient function representation --- macros/src/func.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'macros/src') 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 } } } -- cgit v1.2.3