nodex_api/scope/
callback.rs1use crate::{api, prelude::*};
2use std::mem::MaybeUninit;
3
4#[derive(Clone, Debug)]
9pub struct NapiCallbackScope(NapiEnv, napi_callback_scope);
10
11impl NapiCallbackScope {
12 pub(crate) fn from_raw(env: NapiEnv, scope: napi_callback_scope) -> NapiCallbackScope {
13 NapiCallbackScope(env, scope)
14 }
15
16 pub fn env(&self) -> NapiEnv {
17 self.0
18 }
19
20 pub fn raw(&self) -> napi_callback_scope {
21 self.1
22 }
23
24 pub fn close(&mut self) -> NapiResult<()> {
25 napi_call!(napi_close_callback_scope, self.env(), self.raw())
26 }
27}
28
29impl Drop for NapiCallbackScope {
30 fn drop(&mut self) {
31 if let Err(e) = self.close() {
32 log::warn!("[{}] napi_close_callback_scope failed.", e);
33 }
34 }
35}