diff options
Diffstat (limited to 'ops/optimizer_tests/op_state_generics.out')
-rw-r--r-- | ops/optimizer_tests/op_state_generics.out | 106 |
1 files changed, 63 insertions, 43 deletions
diff --git a/ops/optimizer_tests/op_state_generics.out b/ops/optimizer_tests/op_state_generics.out index 24596256a..a3e476d9e 100644 --- a/ops/optimizer_tests/op_state_generics.out +++ b/ops/optimizer_tests/op_state_generics.out @@ -3,43 +3,66 @@ /// ///Use `op_foo::decl()` to get an op-declaration ///you can include in a `deno_core::Extension`. -pub struct op_foo; +pub struct op_foo<SP> { + _phantom_data: ::std::marker::PhantomData<(SP)>, +} +impl<SP> deno_core::_ops::Op for op_foo<SP> +where + SP: SomePermission + 'static, +{ + const NAME: &'static str = stringify!(op_foo); + const DECL: deno_core::OpDecl = deno_core::OpDecl { + name: Self::name(), + v8_fn_ptr: Self::v8_fn_ptr as _, + enabled: true, + fast_fn: { + use deno_core::v8::fast_api::CType; + use deno_core::v8::fast_api::Type::*; + Some( + deno_core::v8::fast_api::FastFunction::new( + &[V8Value, CallbackOptions], + CType::Void, + Self::op_foo_fast_fn as *const ::std::ffi::c_void, + ), + ) + }, + is_async: false, + is_unstable: false, + is_v8: false, + arg_count: 0, + }; +} #[doc(hidden)] -impl op_foo { +impl<SP> op_foo<SP> +where + SP: SomePermission + 'static, +{ pub const fn name() -> &'static str { stringify!(op_foo) } #[allow(clippy::not_unsafe_ptr_arg_deref)] - pub extern "C" fn v8_fn_ptr<'scope, SP>( - info: *const deno_core::v8::FunctionCallbackInfo, - ) - where - SP: SomePermission + 'static, - { + pub extern "C" fn v8_fn_ptr(info: *const deno_core::v8::FunctionCallbackInfo) { let info = unsafe { &*info }; let scope = &mut unsafe { deno_core::v8::CallbackScope::new(info) }; let args = deno_core::v8::FunctionCallbackArguments::from_function_callback_info( info, ); let rv = deno_core::v8::ReturnValue::from_function_callback_info(info); - Self::v8_func::<SP>(scope, args, rv); + Self::v8_func(scope, args, rv); } - pub const fn decl<'scope, SP>() -> deno_core::OpDecl - where - SP: SomePermission + 'static, - { + pub const fn decl() -> deno_core::OpDecl { deno_core::OpDecl { name: Self::name(), - v8_fn_ptr: Self::v8_fn_ptr::<SP> as _, + v8_fn_ptr: Self::v8_fn_ptr as _, enabled: true, fast_fn: { - use deno_core::v8::fast_api::Type::*; use deno_core::v8::fast_api::CType; + use deno_core::v8::fast_api::Type::*; Some( deno_core::v8::fast_api::FastFunction::new( &[V8Value, CallbackOptions], CType::Void, - op_foo_fast_fn::<SP> as *const ::std::ffi::c_void, + Self::op_foo_fast_fn as *const ::std::ffi::c_void, ), ) }, @@ -51,45 +74,42 @@ impl op_foo { } #[inline] #[allow(clippy::too_many_arguments)] - pub fn call<SP>(state: &mut OpState) - where - SP: SomePermission + 'static, - {} - pub fn v8_func<'scope, SP>( + #[allow(clippy::extra_unused_lifetimes)] + pub fn call<'scope>(state: &mut OpState) {} + pub fn v8_func<'scope>( scope: &mut deno_core::v8::HandleScope<'scope>, args: deno_core::v8::FunctionCallbackArguments, mut rv: deno_core::v8::ReturnValue, - ) - where - SP: SomePermission + 'static, - { + ) { let ctx = unsafe { &*(deno_core::v8::Local::<deno_core::v8::External>::cast(args.data()).value() as *const deno_core::_ops::OpCtx) }; - let result = Self::call::<SP>(&mut std::cell::RefCell::borrow_mut(&ctx.state)); + let result = Self::call(&mut std::cell::RefCell::borrow_mut(&ctx.state)); let op_state = ::std::cell::RefCell::borrow(&*ctx.state); op_state.tracker.track_sync(ctx.id); } } -#[allow(clippy::too_many_arguments)] -fn op_foo_fast_fn<'scope, SP>( - _: deno_core::v8::Local<deno_core::v8::Object>, - fast_api_callback_options: *mut deno_core::v8::fast_api::FastApiCallbackOptions, -) -> () +impl<SP> op_foo<SP> where SP: SomePermission + 'static, { - use deno_core::v8; - use deno_core::_ops; - let __opts: &mut v8::fast_api::FastApiCallbackOptions = unsafe { - &mut *fast_api_callback_options - }; - let __ctx = unsafe { - &*(v8::Local::<v8::External>::cast(unsafe { __opts.data.data }).value() - as *const _ops::OpCtx) - }; - let state = &mut ::std::cell::RefCell::borrow_mut(&__ctx.state); - let result = op_foo::call::<SP>(state); - result + #[allow(clippy::too_many_arguments)] + fn op_foo_fast_fn( + _: deno_core::v8::Local<deno_core::v8::Object>, + fast_api_callback_options: *mut deno_core::v8::fast_api::FastApiCallbackOptions, + ) -> () { + use deno_core::v8; + use deno_core::_ops; + let __opts: &mut v8::fast_api::FastApiCallbackOptions = unsafe { + &mut *fast_api_callback_options + }; + let __ctx = unsafe { + &*(v8::Local::<v8::External>::cast(unsafe { __opts.data.data }).value() + as *const _ops::OpCtx) + }; + let state = &mut ::std::cell::RefCell::borrow_mut(&__ctx.state); + let result = Self::call(state); + result + } } |