libnode_sys/napi/napi_1/
napi_define_properties.rs

1use 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}