From d51972377c1325076704d9faec2eee6f0e024496 Mon Sep 17 00:00:00 2001 From: Gurwinder Singh Date: Tue, 14 Jul 2020 01:49:51 +0530 Subject: refactor: Make OpDispatcher a trait (#6736) --- core/core_isolate.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'core/core_isolate.rs') diff --git a/core/core_isolate.rs b/core/core_isolate.rs index ffe75c00c..c9e718d2d 100644 --- a/core/core_isolate.rs +++ b/core/core_isolate.rs @@ -348,10 +348,11 @@ impl CoreIsolate { /// corresponds to the second argument of Deno.core.dispatch(). /// /// Requires runtime to explicitly ask for op ids before using any of the ops. - pub fn register_op(&mut self, name: &str, op: F) -> OpId - where - F: Fn(&mut CoreIsolateState, &mut [ZeroCopyBuf]) -> Op + 'static, - { + pub fn register_op( + &mut self, + name: &str, + op: impl OpDispatcher + 'static, + ) -> OpId { let state_rc = Self::state(self); let mut state = state_rc.borrow_mut(); state.op_registry.register(name, op) @@ -466,7 +467,7 @@ impl CoreIsolateState { /// Requires runtime to explicitly ask for op ids before using any of the ops. pub fn register_op(&mut self, name: &str, op: F) -> OpId where - F: Fn(&mut CoreIsolateState, &mut [ZeroCopyBuf]) -> Op + 'static, + F: OpDispatcher + 'static, { self.op_registry.register(name, op) } @@ -488,7 +489,7 @@ impl CoreIsolateState { zero_copy_bufs: &mut [ZeroCopyBuf], ) -> Option<(OpId, Box<[u8]>)> { let op = if let Some(dispatcher) = self.op_registry.get(op_id) { - dispatcher(self, zero_copy_bufs) + dispatcher.dispatch(self, zero_copy_bufs) } else { let message = v8::String::new(scope, &format!("Unknown op id: {}", op_id)).unwrap(); -- cgit v1.2.3