diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-03-19 23:49:35 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-03-19 23:49:35 +0100 |
| commit | 30d6c070c1de3da708cacf459f4cc016c374563a (patch) | |
| tree | 256d91caf48d28702c4785560cc6b2525789ac67 /macros/src | |
| parent | ab43bd802eafe33977a91893907e67553e099569 (diff) | |
More efficient function representation
Diffstat (limited to 'macros/src')
| -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 } } } |
