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