rquickjs-napi 0.0.4

Node-API (N-API) support and native addon loading for rquickjs
Documentation
// SPDX-License-Identifier: MIT OR Apache-2.0
//! Keep Node-API symbols reachable during native addon loading.
use super::*;

#[allow(dead_code)]
pub(super) struct Symbols(&'static [*const ()]);
unsafe impl Sync for Symbols {}

#[used]
pub(super) static EXPORTED_SYMBOLS: Symbols = Symbols(&[
    napi_module_register as *const (),
    napi_create_bigint_int64 as *const (),
    napi_create_bigint_uint64 as *const (),
    napi_create_bigint_words as *const (),
    napi_get_value_bigint_int64 as *const (),
    napi_get_value_bigint_uint64 as *const (),
    napi_get_value_bigint_words as *const (),
    napi_create_date as *const (),
    napi_is_date as *const (),
    napi_get_date_value as *const (),
    napi_create_external as *const (),
    napi_get_value_external as *const (),
    napi_create_string_latin1 as *const (),
    napi_create_string_utf16 as *const (),
    napi_get_value_string_latin1 as *const (),
    napi_get_value_string_utf16 as *const (),
    napi_create_threadsafe_function as *const (),
    napi_get_threadsafe_function_context as *const (),
    napi_call_threadsafe_function as *const (),
    napi_acquire_threadsafe_function as *const (),
    napi_release_threadsafe_function as *const (),
    napi_ref_threadsafe_function as *const (),
    napi_unref_threadsafe_function as *const (),
    napi_run_script as *const (),
    napi_fatal_error as *const (),
    napi_fatal_exception as *const (),
    napi_type_tag_object as *const (),
    napi_check_object_type_tag as *const (),
    napi_get_all_property_names as *const (),
    napi_adjust_external_memory as *const (),
    napi_detach_arraybuffer as *const (),
    napi_is_detached_arraybuffer as *const (),
    napi_async_init as *const (),
    napi_async_destroy as *const (),
    napi_make_callback as *const (),
    napi_open_callback_scope as *const (),
    napi_close_callback_scope as *const (),
    napi_add_async_cleanup_hook as *const (),
    napi_remove_async_cleanup_hook as *const (),
    napi_get_uv_event_loop as *const (),
    napi_get_new_target as *const (),
    napi_set_instance_data as *const (),
    napi_get_instance_data as *const (),
    napi_has_property as *const (),
    napi_delete_property as *const (),
    napi_has_element as *const (),
    napi_delete_element as *const (),
    napi_instanceof as *const (),
    napi_object_freeze as *const (),
    napi_object_seal as *const (),
    napi_create_symbol as *const (),
    napi_coerce_to_bool as *const (),
    napi_coerce_to_number as *const (),
    napi_coerce_to_object as *const (),
    napi_is_buffer as *const (),
    napi_is_dataview as *const (),
    napi_is_arraybuffer as *const (),
    napi_create_arraybuffer as *const (),
    napi_create_external_arraybuffer as *const (),
    napi_get_arraybuffer_info as *const (),
    napi_create_typedarray as *const (),
    napi_create_dataview as *const (),
    napi_get_dataview_info as *const (),
    napi_create_reference as *const (),
    napi_delete_reference as *const (),
    napi_reference_ref as *const (),
    napi_reference_unref as *const (),
    napi_get_reference_value as *const (),
    napi_wrap as *const (),
    napi_unwrap as *const (),
    napi_remove_wrap as *const (),
    napi_add_finalizer as *const (),
    napi_define_class as *const (),
    napi_new_instance as *const (),
    napi_get_prototype as *const (),
    napi_strict_equals as *const (),
    napi_has_own_property as *const (),
    napi_coerce_to_string as *const (),
    napi_get_property_names as *const (),
    napi_create_promise as *const (),
    napi_resolve_deferred as *const (),
    napi_reject_deferred as *const (),
    napi_is_promise as *const (),
    napi_create_buffer as *const (),
    napi_create_buffer_copy as *const (),
    napi_create_external_buffer as *const (),
    napi_is_typedarray as *const (),
    napi_get_typedarray_info as *const (),
    napi_get_buffer_info as *const (),
    napi_create_async_work as *const (),
    napi_delete_async_work as *const (),
    napi_cancel_async_work as *const (),
    napi_queue_async_work as *const (),
    napi_add_env_cleanup_hook as *const (),
    napi_remove_env_cleanup_hook as *const (),
    napi_get_last_error_info as *const (),
    napi_get_version as *const (),
    napi_get_node_version as *const (),
    napi_get_undefined as *const (),
    napi_get_null as *const (),
    napi_get_global as *const (),
    napi_get_boolean as *const (),
    napi_create_double as *const (),
    napi_create_int32 as *const (),
    napi_create_uint32 as *const (),
    napi_create_int64 as *const (),
    napi_create_string_utf8 as *const (),
    napi_get_value_double as *const (),
    napi_get_value_int32 as *const (),
    napi_get_value_uint32 as *const (),
    napi_get_value_int64 as *const (),
    napi_get_value_bool as *const (),
    napi_get_value_string_utf8 as *const (),
    napi_typeof as *const (),
    napi_create_object as *const (),
    napi_create_array as *const (),
    napi_create_array_with_length as *const (),
    napi_is_array as *const (),
    napi_get_array_length as *const (),
    napi_set_property as *const (),
    napi_get_property as *const (),
    napi_set_named_property as *const (),
    napi_get_named_property as *const (),
    napi_has_named_property as *const (),
    napi_set_element as *const (),
    napi_get_element as *const (),
    napi_define_properties as *const (),
    napi_create_function as *const (),
    napi_get_cb_info as *const (),
    napi_call_function as *const (),
    napi_throw_error as *const (),
    napi_throw_type_error as *const (),
    napi_throw_range_error as *const (),
    napi_throw as *const (),
    napi_create_error as *const (),
    napi_create_type_error as *const (),
    napi_create_range_error as *const (),
    napi_is_error as *const (),
    napi_is_exception_pending as *const (),
    napi_get_and_clear_last_exception as *const (),
    napi_open_handle_scope as *const (),
    napi_close_handle_scope as *const (),
    napi_open_escapable_handle_scope as *const (),
    napi_close_escapable_handle_scope as *const (),
    napi_escape_handle as *const (),
]);