From becbb56b19e96e4dd72b861217a855fba953d290 Mon Sep 17 00:00:00 2001 From: Valentin Anger Date: Mon, 1 Jun 2020 20:20:47 +0200 Subject: feat(core): Ops can take several zero copy buffers (#4788) --- cli/state.rs | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'cli/state.rs') diff --git a/cli/state.rs b/cli/state.rs index 77a268fab..c94f92788 100644 --- a/cli/state.rs +++ b/cli/state.rs @@ -65,9 +65,9 @@ impl State { pub fn stateful_json_op( &self, dispatcher: D, - ) -> impl Fn(&mut deno_core::CoreIsolateState, &[u8], Option) -> Op + ) -> impl Fn(&mut deno_core::CoreIsolateState, &[u8], &mut [ZeroCopyBuf]) -> Op where - D: Fn(&State, Value, Option) -> Result, + D: Fn(&State, Value, &mut [ZeroCopyBuf]) -> Result, { use crate::ops::json_op; self.core_op(json_op(self.stateful_op(dispatcher))) @@ -76,13 +76,13 @@ impl State { pub fn stateful_json_op2( &self, dispatcher: D, - ) -> impl Fn(&mut deno_core::CoreIsolateState, &[u8], Option) -> Op + ) -> impl Fn(&mut deno_core::CoreIsolateState, &[u8], &mut [ZeroCopyBuf]) -> Op where D: Fn( &mut deno_core::CoreIsolateState, &State, Value, - Option, + &mut [ZeroCopyBuf], ) -> Result, { use crate::ops::json_op; @@ -95,19 +95,19 @@ impl State { pub fn core_op( &self, dispatcher: D, - ) -> impl Fn(&mut deno_core::CoreIsolateState, &[u8], Option) -> Op + ) -> impl Fn(&mut deno_core::CoreIsolateState, &[u8], &mut [ZeroCopyBuf]) -> Op where - D: Fn(&mut deno_core::CoreIsolateState, &[u8], Option) -> Op, + D: Fn(&mut deno_core::CoreIsolateState, &[u8], &mut [ZeroCopyBuf]) -> Op, { let state = self.clone(); move |isolate_state: &mut deno_core::CoreIsolateState, control: &[u8], - zero_copy: Option| + zero_copy: &mut [ZeroCopyBuf]| -> Op { let bytes_sent_control = control.len() as u64; let bytes_sent_zero_copy = - zero_copy.as_ref().map(|b| b.len()).unwrap_or(0) as u64; + zero_copy.iter().map(|b| b.len()).sum::() as u64; let op = dispatcher(isolate_state, control, zero_copy); @@ -155,14 +155,14 @@ impl State { pub fn stateful_minimal_op2( &self, dispatcher: D, - ) -> impl Fn(&mut deno_core::CoreIsolateState, &[u8], Option) -> Op + ) -> impl Fn(&mut deno_core::CoreIsolateState, &[u8], &mut [ZeroCopyBuf]) -> Op where D: Fn( &mut deno_core::CoreIsolateState, &State, bool, i32, - Option, + &mut [ZeroCopyBuf], ) -> MinimalOp, { let state = self.clone(); @@ -170,7 +170,7 @@ impl State { move |isolate_state: &mut deno_core::CoreIsolateState, is_sync: bool, rid: i32, - zero_copy: Option| + zero_copy: &mut [ZeroCopyBuf]| -> MinimalOp { dispatcher(isolate_state, &state, is_sync, rid, zero_copy) }, @@ -188,15 +188,15 @@ impl State { ) -> impl Fn( &mut deno_core::CoreIsolateState, Value, - Option, + &mut [ZeroCopyBuf], ) -> Result where - D: Fn(&State, Value, Option) -> Result, + D: Fn(&State, Value, &mut [ZeroCopyBuf]) -> Result, { let state = self.clone(); move |_isolate_state: &mut deno_core::CoreIsolateState, args: Value, - zero_copy: Option| + zero_copy: &mut [ZeroCopyBuf]| -> Result { dispatcher(&state, args, zero_copy) } } @@ -206,20 +206,20 @@ impl State { ) -> impl Fn( &mut deno_core::CoreIsolateState, Value, - Option, + &mut [ZeroCopyBuf], ) -> Result where D: Fn( &mut deno_core::CoreIsolateState, &State, Value, - Option, + &mut [ZeroCopyBuf], ) -> Result, { let state = self.clone(); move |isolate_state: &mut deno_core::CoreIsolateState, args: Value, - zero_copy: Option| + zero_copy: &mut [ZeroCopyBuf]| -> Result { dispatcher(isolate_state, &state, args, zero_copy) } -- cgit v1.2.3