libnode_sys/napi/napi_1/
napi_define_properties.rs1use std::sync::OnceLock;
2
3use super::super::*;
4
5const SYMBOL: &[u8] = "napi_define_properties".as_bytes();
6type SIGNATURE = fn(
7 env: napi_env,
8 object: napi_value,
9 property_count: usize,
10 properties: *const napi_property_descriptor,
11) -> napi_status;
12static CACHE: OnceLock<crate::load::Symbol<SIGNATURE>> = OnceLock::new();
13
14pub unsafe fn napi_define_properties(
15 env: napi_env,
16 object: napi_value,
17 property_count: usize,
18 properties: *const napi_property_descriptor,
19) -> napi_status {
20 unsafe {
21 CACHE.get_or_init(|| crate::load::get_sym(SYMBOL).unwrap())(
22 env,
23 object,
24 property_count,
25 properties,
26 )
27 }
28}