use crate::Result;
use napi_sys as sys;
use std::marker::PhantomData;
pub struct SendableResolver<
Data: 'static + Send,
R: 'static + FnOnce(sys::napi_env, Data) -> Result<sys::napi_value>,
> {
inner: R,
_data: PhantomData<Data>,
}
unsafe impl<Data: 'static + Send, R: 'static + FnOnce(sys::napi_env, Data) -> Result<sys::napi_value>>
Send for SendableResolver<Data, R>
{
}
impl<Data: 'static + Send, R: 'static + FnOnce(sys::napi_env, Data) -> Result<sys::napi_value>>
SendableResolver<Data, R>
{
pub fn new(inner: R) -> Self {
Self {
inner,
_data: PhantomData,
}
}
pub fn resolve(self, env: sys::napi_env, data: Data) -> Result<sys::napi_value> {
(self.inner)(env, data)
}
}