From 5744b42a34fe1ec9fcc7a8c94ae444f89bee1523 Mon Sep 17 00:00:00 2001 From: Ivan Enderlin Date: Mon, 6 Nov 2023 11:35:25 +0100 Subject: [PATCH] fix: Add visibility on function and constructor. This patch adds the visibility, if any, of `#[function_callback]` and `#[constructor_callback]`. --- javascriptcore-macros/src/lib.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/javascriptcore-macros/src/lib.rs b/javascriptcore-macros/src/lib.rs index 9a24c31..f64304a 100644 --- a/javascriptcore-macros/src/lib.rs +++ b/javascriptcore-macros/src/lib.rs @@ -21,10 +21,11 @@ use quote::quote; pub fn function_callback(_attributes: TokenStream, item: TokenStream) -> TokenStream { let function = syn::parse::(item) .expect("#[function_callback] must apply on a valid function"); + let function_visibility = &function.vis; let function_name = &function.sig.ident; quote! { - unsafe extern "C" fn #function_name( + #function_visibility unsafe extern "C" fn #function_name( raw_ctx: javascriptcore::sys::JSContextRef, function: javascriptcore::sys::JSObjectRef, this_object: javascriptcore::sys::JSObjectRef, @@ -126,10 +127,11 @@ pub fn function_callback(_attributes: TokenStream, item: TokenStream) -> TokenSt pub fn constructor_callback(_attributes: TokenStream, item: TokenStream) -> TokenStream { let constructor = syn::parse::(item) .expect("#[constructor_callback] must apply on a valid function"); + let constructor_visibility = &constructor.vis; let constructor_name = &constructor.sig.ident; quote! { - unsafe extern "C" fn #constructor_name( + #constructor_visibility unsafe extern "C" fn #constructor_name( raw_ctx: javascriptcore::sys::JSContextRef, constructor: javascriptcore::sys::JSObjectRef, argument_count: usize,