#[allow(non_camel_case_types)]
pub const fn op_async_v8_buffer() -> ::simien_core::_ops::OpDecl {
#[allow(non_camel_case_types)]
pub struct op_async_v8_buffer {
_unconstructable: ::std::marker::PhantomData<()>,
}
impl ::simien_core::_ops::Op for op_async_v8_buffer {
const NAME: &'static str = stringify!(op_async_v8_buffer);
const DECL: ::simien_core::_ops::OpDecl = ::simien_core::_ops::OpDecl::new_internal_op2(
::simien_core::__op_name_fast!(op_async_v8_buffer),
true,
false,
false,
2usize as u8,
false,
false,
Self::v8_fn_ptr as _,
Self::slow_function_impl,
::simien_core::AccessorType::None,
None,
None,
::simien_core::OpMetadata {
..::simien_core::OpMetadata::default()
},
);
}
impl op_async_v8_buffer {
pub const fn name() -> &'static str {
<Self as simien_core::_ops::Op>::NAME
}
fn slow_function_impl<'s>(
info: *const simien_core::v8::FunctionCallbackInfo,
) -> usize {
let info: &'s _ = unsafe { &*info };
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let parts: simien_core::v8::FunctionCallbackInfoParts<'s> = info.get_parts();
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(info) }
);
let mut scope = scope.init();
let mut rv = parts.return_value;
let args = simien_core::v8::FunctionCallbackArguments::from_function_callback_info_parts(
info,
&parts,
);
let opctx: &'s _ = unsafe {
&*(simien_core::v8::Local::<
simien_core::v8::External,
>::cast_unchecked(args.data())
.value() as *const simien_core::_ops::OpCtx)
};
let result = {
let arg0 = args.get(1usize as i32);
let mut arg0_temp;
arg0_temp = match unsafe { simien_core::_ops::to_v8_slice::<u8>(arg0) } {
Ok(arg0) => arg0,
Err(arg0_err) => {
simien_core::_ops::throw_error_one_byte_info(&info, arg0_err);
return 1;
}
};
let arg0 = simien_core::simien_serde_v8::JsBuffer::from_parts(arg0_temp);
Self::call(arg0)
};
let promise_id = simien_core::_ops::to_i32_option(&args.get(0))
.unwrap_or_default();
if let Some(result) = simien_core::_ops::map_async_op_infallible(
opctx,
false,
false,
promise_id,
result,
|scope, result| {
simien_core::_ops::RustToV8Fallible::to_v8_fallible(result, scope)
},
) {
match simien_core::_ops::RustToV8Fallible::to_v8_fallible(
result,
&mut scope,
) {
Ok(v) => rv.set(v),
Err(rv_err) => {
simien_core::_ops::throw_error_js_error_class(
&mut scope,
&rv_err,
);
return 1;
}
};
return 0;
}
return 2;
}
extern "C" fn v8_fn_ptr(info: *const simien_core::v8::FunctionCallbackInfo) {
Self::slow_function_impl(info);
}
}
impl op_async_v8_buffer {
#[allow(clippy::too_many_arguments)]
pub async fn call(buf: JsBuffer) -> JsBuffer {
buf
}
}
<op_async_v8_buffer as ::simien_core::_ops::Op>::DECL
}