1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4#![allow(dead_code)]
5
6use std::os::raw::{c_char, c_int, c_uint, c_void};
7
8#[repr(C)]
9#[derive(Copy, Clone)]
10pub struct napi_env__ {
11 _unused: [u8; 0],
12}
13
14pub type napi_env = *mut napi_env__;
16#[repr(C)]
17#[derive(Copy, Clone)]
18pub struct napi_value__ {
19 _unused: [u8; 0],
20}
21
22pub type napi_value = *mut napi_value__;
24#[repr(C)]
25#[derive(Copy, Clone)]
26pub struct napi_ref__ {
27 _unused: [u8; 0],
28}
29pub type napi_ref = *mut napi_ref__;
30#[repr(C)]
31#[derive(Copy, Clone)]
32pub struct napi_handle_scope__ {
33 _unused: [u8; 0],
34}
35pub type napi_handle_scope = *mut napi_handle_scope__;
36#[repr(C)]
37#[derive(Copy, Clone)]
38pub struct napi_escapable_handle_scope__ {
39 _unused: [u8; 0],
40}
41pub type napi_escapable_handle_scope = *mut napi_escapable_handle_scope__;
42#[repr(C)]
43#[derive(Copy, Clone)]
44pub struct napi_callback_info__ {
45 _unused: [u8; 0],
46}
47pub type napi_callback_info = *mut napi_callback_info__;
48#[repr(C)]
49#[derive(Copy, Clone)]
50pub struct napi_deferred__ {
51 _unused: [u8; 0],
52}
53#[repr(C)]
54#[derive(Copy, Clone)]
55pub struct uv_loop_s {
56 _unused: [u8; 0],
57}
58#[repr(C)]
59#[derive(Copy, Clone)]
60pub enum uv_run_mode {
61 UV_RUN_DEFAULT = 0,
62 UV_RUN_ONCE = 1,
63 UV_RUN_NOWAIT = 2,
64}
65pub type napi_deferred = *mut napi_deferred__;
66
67pub type napi_property_attributes = i32;
68
69pub mod PropertyAttributes {
70 use super::napi_property_attributes;
71
72 pub const default: napi_property_attributes = 0;
73 pub const writable: napi_property_attributes = 1 << 0;
74 pub const enumerable: napi_property_attributes = 1 << 1;
75 pub const configurable: napi_property_attributes = 1 << 2;
76
77 pub const static_: napi_property_attributes = 1 << 10;
80}
81
82pub type napi_valuetype = i32;
83
84pub mod ValueType {
85 pub const napi_undefined: i32 = 0;
86 pub const napi_null: i32 = 1;
87 pub const napi_boolean: i32 = 2;
88 pub const napi_number: i32 = 3;
89 pub const napi_string: i32 = 4;
90 #[cfg(not(target_env = "ohos"))]
91 pub const napi_symbol: i32 = 5;
92 pub const napi_object: i32 = 6;
93 pub const napi_function: i32 = 7;
94 pub const napi_external: i32 = 8;
95 #[cfg(feature = "napi6")]
96 pub const napi_bigint: i32 = 9;
97}
98
99pub type napi_typedarray_type = i32;
100
101pub mod TypedarrayType {
102 pub const int8_array: i32 = 0;
103 pub const uint8_array: i32 = 1;
104 pub const uint8_clamped_array: i32 = 2;
105 pub const int16_array: i32 = 3;
106 pub const uint16_array: i32 = 4;
107 pub const int32_array: i32 = 5;
108 pub const uint32_array: i32 = 6;
109 pub const float32_array: i32 = 7;
110 pub const float64_array: i32 = 8;
111 #[cfg(feature = "napi6")]
112 pub const bigint64_array: i32 = 9;
113 #[cfg(feature = "napi6")]
114 pub const biguint64_array: i32 = 10;
115}
116
117pub type napi_status = i32;
118
119pub mod Status {
120 pub const napi_ok: i32 = 0;
121 pub const napi_invalid_arg: i32 = 1;
122 pub const napi_object_expected: i32 = 2;
123 pub const napi_string_expected: i32 = 3;
124 pub const napi_name_expected: i32 = 4;
125 pub const napi_function_expected: i32 = 5;
126 pub const napi_number_expected: i32 = 6;
127 pub const napi_boolean_expected: i32 = 7;
128 pub const napi_array_expected: i32 = 8;
129 pub const napi_generic_failure: i32 = 9;
130 pub const napi_pending_exception: i32 = 10;
131 pub const napi_cancelled: i32 = 11;
132 pub const napi_escape_called_twice: i32 = 12;
133 pub const napi_handle_scope_mismatch: i32 = 13;
134 pub const napi_callback_scope_mismatch: i32 = 14;
135 pub const napi_queue_full: i32 = 15;
136 pub const napi_closing: i32 = 16;
137 pub const napi_bigint_expected: i32 = 17;
138 pub const napi_date_expected: i32 = 18;
139 pub const napi_arraybuffer_expected: i32 = 19;
140 pub const napi_detachable_arraybuffer_expected: i32 = 20;
141 pub const napi_would_deadlock: i32 = 21; pub const napi_no_external_buffers_allowed: i32 = 22;
143}
144
145pub type napi_callback =
146 Option<unsafe extern "C" fn(env: napi_env, info: napi_callback_info) -> napi_value>;
147pub type napi_finalize = Option<
148 unsafe extern "C" fn(env: napi_env, finalize_data: *mut c_void, finalize_hint: *mut c_void),
149>;
150#[repr(C)]
151#[derive(Copy, Clone, Debug)]
152pub struct napi_property_descriptor {
153 pub utf8name: *const c_char,
154 pub name: napi_value,
155 pub method: napi_callback,
156 pub getter: napi_callback,
157 pub setter: napi_callback,
158 pub value: napi_value,
159 pub attributes: napi_property_attributes,
160 pub data: *mut c_void,
161}
162
163#[repr(C)]
164#[derive(Copy, Clone)]
165pub struct napi_extended_error_info {
166 pub error_message: *const c_char,
167 pub engine_reserved: *mut c_void,
168 pub engine_error_code: u32,
169 pub error_code: napi_status,
170}
171
172#[cfg(feature = "napi6")]
173pub type napi_key_collection_mode = i32;
174
175#[cfg(feature = "napi6")]
176pub mod KeyCollectionMode {
177 pub use super::napi_key_collection_mode;
178 pub const include_prototypes: napi_key_collection_mode = 0;
179 pub const own_only: napi_key_collection_mode = 1;
180}
181
182#[cfg(feature = "napi6")]
183pub type napi_key_filter = i32;
184
185#[cfg(feature = "napi6")]
186pub mod KeyFilter {
187 use super::napi_key_filter;
188
189 pub const all_properties: napi_key_filter = 0;
190 pub const writable: napi_key_filter = 1;
191 pub const enumerable: napi_key_filter = 1 << 1;
192 pub const configurable: napi_key_filter = 1 << 2;
193 pub const skip_strings: napi_key_filter = 1 << 3;
194 pub const skip_symbols: napi_key_filter = 1 << 4;
195}
196
197#[cfg(feature = "napi6")]
198pub type napi_key_conversion = i32;
199
200#[cfg(feature = "napi6")]
201pub mod KeyConversion {
202 use super::napi_key_conversion;
203
204 pub const keep_numbers: napi_key_conversion = 0;
205 pub const numbers_to_strings: napi_key_conversion = 1;
206}
207#[cfg(feature = "napi8")]
208#[repr(C)]
209#[derive(Debug, Copy, Clone)]
210pub struct napi_async_cleanup_hook_handle__ {
211 _unused: [u8; 0],
212}
213#[cfg(feature = "napi8")]
214pub type napi_async_cleanup_hook_handle = *mut napi_async_cleanup_hook_handle__;
215#[cfg(feature = "napi8")]
216pub type napi_async_cleanup_hook =
217 Option<unsafe extern "C" fn(handle: napi_async_cleanup_hook_handle, data: *mut c_void)>;
218
219#[repr(C)]
220#[derive(Copy, Clone)]
221pub struct napi_callback_scope__ {
222 _unused: [u8; 0],
223}
224pub type napi_callback_scope = *mut napi_callback_scope__;
225#[repr(C)]
226#[derive(Copy, Clone)]
227pub struct napi_async_context__ {
228 _unused: [u8; 0],
229}
230pub type napi_async_context = *mut napi_async_context__;
231#[repr(C)]
232#[derive(Copy, Clone)]
233pub struct napi_async_work__ {
234 _unused: [u8; 0],
235}
236pub type napi_async_work = *mut napi_async_work__;
237
238#[cfg(feature = "napi4")]
239#[repr(C)]
240#[derive(Copy, Clone)]
241pub struct napi_threadsafe_function__ {
242 _unused: [u8; 0],
243}
244
245#[cfg(feature = "napi4")]
246pub type napi_threadsafe_function = *mut napi_threadsafe_function__;
247
248#[cfg(feature = "napi4")]
249pub type napi_threadsafe_function_release_mode = i32;
250
251#[cfg(feature = "napi4")]
252pub mod ThreadsafeFunctionReleaseMode {
253 use super::napi_threadsafe_function_release_mode;
254 pub const release: napi_threadsafe_function_release_mode = 0;
255 pub const abort: napi_threadsafe_function_release_mode = 1;
256}
257
258#[cfg(feature = "napi4")]
259pub type napi_threadsafe_function_call_mode = i32;
260
261#[cfg(feature = "napi4")]
262pub mod ThreadsafeFunctionCallMode {
263 use super::napi_threadsafe_function_call_mode;
264
265 pub const nonblocking: napi_threadsafe_function_call_mode = 0;
266 pub const blocking: napi_threadsafe_function_call_mode = 1;
267}
268
269pub type napi_async_execute_callback =
270 Option<unsafe extern "C" fn(env: napi_env, data: *mut c_void)>;
271pub type napi_async_complete_callback =
272 Option<unsafe extern "C" fn(env: napi_env, status: napi_status, data: *mut c_void)>;
273
274#[cfg(feature = "napi4")]
275pub type napi_threadsafe_function_call_js = Option<
276 unsafe extern "C" fn(
277 env: napi_env,
278 js_callback: napi_value,
279 context: *mut c_void,
280 data: *mut c_void,
281 ),
282>;
283#[repr(C)]
284#[derive(Copy, Clone)]
285pub struct napi_node_version {
286 pub major: u32,
287 pub minor: u32,
288 pub patch: u32,
289 pub release: *const c_char,
290}
291
292pub type napi_addon_register_func =
293 Option<unsafe extern "C" fn(env: napi_env, exports: napi_value) -> napi_value>;
294#[repr(C)]
295#[derive(Copy, Clone)]
296pub struct napi_module {
297 pub nm_version: c_int,
298 pub nm_flags: c_uint,
299 pub nm_filename: *const c_char,
300 pub nm_register_func: napi_addon_register_func,
301 pub nm_modname: *const c_char,
302 pub nm_priv: *mut c_void,
303 pub reserved: [*mut c_void; 4usize],
304}
305
306#[repr(C)]
307#[derive(Copy, Clone)]
308pub enum napi_qos_t {
309 napi_qos_background,
311 napi_qos_utility,
313 napi_qos_default,
315 napi_qos_user_initiated,
317}
318
319#[repr(C)]
320#[derive(Clone, Copy)]
321pub enum napi_task_priority {
322 napi_priority_immediate,
323 napi_priority_high,
324 napi_priority_low,
325 napi_priority_idle,
326}
327
328#[repr(C)]
329#[derive(Clone, Copy)]
330pub enum napi_event_mode {
331 napi_event_mode_default,
332 napi_event_mode_nowait,
333}
334#[cfg(feature = "experimental")]
335#[repr(C)]
336#[derive(Copy, Clone)]
337pub struct node_api_basic_env__ {
338 _unused: [u8; 0],
339}
340
341#[cfg(feature = "experimental")]
342pub type node_api_basic_env = *mut node_api_basic_env__;
343
344#[cfg(feature = "experimental")]
345#[cfg(feature = "napi10")]
346pub type node_api_basic_finalize = Option<
347 unsafe extern "C" fn(
348 env: node_api_basic_env,
349 finalize_data: *mut c_void,
350 finalize_hint: *mut c_void,
351 ),
352>;
353
354#[cfg(any(feature = "experimental", feature = "napi10"))]
355#[repr(C)]
356#[derive(Copy, Clone)]
357pub struct node_api_basic_env__ {
358 _unused: [u8; 0],
359}
360
361#[cfg(any(feature = "experimental", feature = "napi10"))]
362pub type node_api_basic_env = *mut node_api_basic_env__;