napi_sys_ohos/
types.rs

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
14/// Env ptr
15pub type napi_env = *mut napi_env__;
16#[repr(C)]
17#[derive(Copy, Clone)]
18pub struct napi_value__ {
19  _unused: [u8; 0],
20}
21
22/// JsValue ptr
23pub 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  // Used with napi_define_class to distinguish static properties
78  // from instance properties. Ignored by napi_define_properties.
79  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; // unused
142  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  // low
310  napi_qos_background,
311  // middle
312  napi_qos_utility,
313  // default
314  napi_qos_default,
315  // high
316  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__;