summaryrefslogtreecommitdiff
path: root/test_napi/src/object_wrap.rs
diff options
context:
space:
mode:
Diffstat (limited to 'test_napi/src/object_wrap.rs')
-rw-r--r--test_napi/src/object_wrap.rs156
1 files changed, 0 insertions, 156 deletions
diff --git a/test_napi/src/object_wrap.rs b/test_napi/src/object_wrap.rs
deleted file mode 100644
index d04107cf0..000000000
--- a/test_napi/src/object_wrap.rs
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
-
-use crate::assert_napi_ok;
-use crate::napi_get_callback_info;
-use crate::napi_new_property;
-use napi_sys::ValueType::napi_number;
-use napi_sys::*;
-use std::os::raw::c_char;
-use std::os::raw::c_void;
-use std::ptr;
-
-pub struct NapiObject {
- counter: i32,
- _wrapper: napi_ref,
-}
-
-impl NapiObject {
- #[allow(clippy::new_ret_no_self)]
- pub extern "C" fn new(env: napi_env, info: napi_callback_info) -> napi_value {
- let mut new_target: napi_value = ptr::null_mut();
- assert_napi_ok!(napi_get_new_target(env, info, &mut new_target));
- let is_constructor = !new_target.is_null();
-
- let (args, argc, this) = napi_get_callback_info!(env, info, 1);
- assert_eq!(argc, 1);
-
- if is_constructor {
- let mut value = 0;
-
- let mut ty = -1;
- assert_napi_ok!(napi_typeof(env, args[0], &mut ty));
- assert_eq!(ty, napi_number);
-
- assert_napi_ok!(napi_get_value_int32(env, args[0], &mut value));
-
- let mut wrapper: napi_ref = ptr::null_mut();
- let obj = Box::new(Self {
- counter: value,
- _wrapper: wrapper,
- });
- assert_napi_ok!(napi_wrap(
- env,
- this,
- Box::into_raw(obj) as *mut c_void,
- None,
- ptr::null_mut(),
- &mut wrapper,
- ));
-
- return this;
- }
-
- unreachable!();
- }
-
- pub extern "C" fn set_value(
- env: napi_env,
- info: napi_callback_info,
- ) -> napi_value {
- let (args, argc, this) = napi_get_callback_info!(env, info, 1);
- assert_eq!(argc, 1);
- let mut obj: *mut Self = ptr::null_mut();
- assert_napi_ok!(napi_unwrap(
- env,
- this,
- &mut obj as *mut _ as *mut *mut c_void
- ));
-
- assert_napi_ok!(napi_get_value_int32(env, args[0], &mut (*obj).counter));
-
- ptr::null_mut()
- }
-
- pub extern "C" fn get_value(
- env: napi_env,
- info: napi_callback_info,
- ) -> napi_value {
- let (_args, argc, this) = napi_get_callback_info!(env, info, 0);
- assert_eq!(argc, 0);
- let mut obj: *mut Self = ptr::null_mut();
- assert_napi_ok!(napi_unwrap(
- env,
- this,
- &mut obj as *mut _ as *mut *mut c_void
- ));
-
- let mut num: napi_value = ptr::null_mut();
- assert_napi_ok!(napi_create_int32(env, (*obj).counter, &mut num));
-
- num
- }
-
- pub extern "C" fn increment(
- env: napi_env,
- info: napi_callback_info,
- ) -> napi_value {
- let (_args, argc, this) = napi_get_callback_info!(env, info, 0);
- assert_eq!(argc, 0);
- let mut obj: *mut Self = ptr::null_mut();
- assert_napi_ok!(napi_unwrap(
- env,
- this,
- &mut obj as *mut _ as *mut *mut c_void
- ));
-
- unsafe {
- (*obj).counter += 1;
- }
-
- ptr::null_mut()
- }
-
- pub extern "C" fn factory(
- env: napi_env,
- info: napi_callback_info,
- ) -> napi_value {
- let (_args, argc, _this) = napi_get_callback_info!(env, info, 0);
- assert_eq!(argc, 0);
-
- let int64 = 64;
- let mut value: napi_value = ptr::null_mut();
- assert_napi_ok!(napi_create_int64(env, int64, &mut value));
- value
- }
-}
-
-pub fn init(env: napi_env, exports: napi_value) {
- let mut static_prop = napi_new_property!(env, "factory", NapiObject::factory);
- static_prop.attributes = PropertyAttributes::static_;
-
- let properties = &[
- napi_new_property!(env, "set_value", NapiObject::set_value),
- napi_new_property!(env, "get_value", NapiObject::get_value),
- napi_new_property!(env, "increment", NapiObject::increment),
- static_prop,
- ];
-
- let mut cons: napi_value = ptr::null_mut();
- assert_napi_ok!(napi_define_class(
- env,
- "NapiObject\0".as_ptr() as *mut c_char,
- usize::MAX,
- Some(NapiObject::new),
- ptr::null_mut(),
- properties.len(),
- properties.as_ptr(),
- &mut cons,
- ));
-
- assert_napi_ok!(napi_set_named_property(
- env,
- exports,
- "NapiObject\0".as_ptr() as *const c_char,
- cons,
- ));
-}