diff options
author | Bert Belder <bertbelder@gmail.com> | 2020-08-26 18:20:22 +0200 |
---|---|---|
committer | Bert Belder <bertbelder@gmail.com> | 2020-08-26 18:48:04 +0200 |
commit | c8b5f1e454d5cb2bd7580bbe0ac4fa83237e9f41 (patch) | |
tree | 6982e7cd91eb17e85c89658bc078947b6a4e8c04 /cli/state.rs | |
parent | 765235341b6075bcf64d8ebcdb61e350d251514d (diff) |
Simplify ErrBox-to-class mapping & hook it up to core json ops (#7195)
Diffstat (limited to 'cli/state.rs')
-rw-r--r-- | cli/state.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/cli/state.rs b/cli/state.rs index cb8d507f1..2ea75ace6 100644 --- a/cli/state.rs +++ b/cli/state.rs @@ -86,15 +86,16 @@ impl State { let resource_table = resource_table.clone(); move |isolate_state: &mut CoreIsolateState, bufs: &mut [ZeroCopyBuf]| { - let rust_err_to_json_fn = isolate_state.rust_err_to_json_fn; + let get_error_class_fn = isolate_state.get_error_class_fn; + // The first buffer should contain JSON encoded op arguments; parse them. let args: Value = match serde_json::from_slice(&bufs[0]) { Ok(v) => v, Err(e) => { return Op::Sync(serialize_result( - rust_err_to_json_fn, None, Err(e.into()), + get_error_class_fn, )); } }; @@ -106,7 +107,7 @@ impl State { dispatcher(&state, &mut *resource_table.borrow_mut(), args, zero_copy); // Convert to Op. - Op::Sync(serialize_result(rust_err_to_json_fn, None, result)) + Op::Sync(serialize_result(None, result, get_error_class_fn)) } } @@ -124,13 +125,14 @@ impl State { let resource_table = resource_table.clone(); move |isolate_state: &mut CoreIsolateState, bufs: &mut [ZeroCopyBuf]| { - let rust_err_to_json_fn = isolate_state.rust_err_to_json_fn; + let get_error_class_fn = isolate_state.get_error_class_fn; + // The first buffer should contain JSON encoded op arguments; parse them. let args: Value = match serde_json::from_slice(&bufs[0]) { Ok(v) => v, Err(e) => { let e = e.into(); - return Op::Sync(serialize_result(rust_err_to_json_fn, None, Err(e))); + return Op::Sync(serialize_result(None, Err(e), get_error_class_fn)); } }; @@ -139,7 +141,7 @@ impl State { Some(i) => i, None => { let e = ErrBox::new("TypeError", "`promiseId` invalid/missing"); - return Op::Sync(serialize_result(rust_err_to_json_fn, None, Err(e))); + return Op::Sync(serialize_result(None, Err(e), get_error_class_fn)); } }; @@ -157,7 +159,7 @@ impl State { // Convert to Op. Op::Async( async move { - serialize_result(rust_err_to_json_fn, Some(promise_id), fut.await) + serialize_result(Some(promise_id), fut.await, get_error_class_fn) } .boxed_local(), ) |