diff options
Diffstat (limited to 'core/ops_json.rs')
-rw-r--r-- | core/ops_json.rs | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/core/ops_json.rs b/core/ops_json.rs index b3153763e..ad4aeeb47 100644 --- a/core/ops_json.rs +++ b/core/ops_json.rs @@ -67,7 +67,6 @@ where /// Creates an op that passes data asynchronously using JSON. /// /// When this op is dispatched, the runtime doesn't exit while processing it. -/// Use op_async_unref instead if you want to make the runtime exit while processing it. /// /// The provided function `op_fn` has the following parameters: /// * `Rc<RefCell<OpState>`: the op state, can be used to read/write resources in the runtime from an op. @@ -118,38 +117,6 @@ where }) } -/// Creates an op that passes data asynchronously using JSON. -/// -/// When this op is dispatched, the runtime still can exit while processing it. -/// -/// The other usages are the same as `op_async`. -pub fn op_async_unref<F, A, B, R, RV>(op_fn: F) -> Box<OpFn> -where - F: Fn(Rc<RefCell<OpState>>, A, B) -> R + 'static, - A: DeserializeOwned, - B: DeserializeOwned, - R: Future<Output = Result<RV, Error>> + 'static, - RV: Serialize + 'static, -{ - Box::new(move |state, payload| -> Op { - let op_id = payload.op_id; - let pid = payload.promise_id; - // Deserialize args, sync error on failure - let args = match payload.deserialize() { - Ok(args) => args, - Err(err) => { - return Op::Sync(serialize_op_result(Err::<(), Error>(err), state)) - } - }; - let (a, b) = args; - - use crate::futures::FutureExt; - let fut = op_fn(state.clone(), a, b) - .map(move |result| (pid, op_id, serialize_op_result(result, state))); - Op::AsyncUnref(OpCall::eager(fut)) - }) -} - #[cfg(test)] mod tests { use super::*; |