summaryrefslogtreecommitdiff
path: root/cli/state.rs
diff options
context:
space:
mode:
authorBert Belder <bertbelder@gmail.com>2020-08-26 18:20:22 +0200
committerBert Belder <bertbelder@gmail.com>2020-08-26 18:48:04 +0200
commitc8b5f1e454d5cb2bd7580bbe0ac4fa83237e9f41 (patch)
tree6982e7cd91eb17e85c89658bc078947b6a4e8c04 /cli/state.rs
parent765235341b6075bcf64d8ebcdb61e350d251514d (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.rs16
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(),
)