summaryrefslogtreecommitdiff
path: root/cli/ops/resources.rs
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2020-09-10 09:57:45 -0400
committerGitHub <noreply@github.com>2020-09-10 09:57:45 -0400
commit7c2e7c660804afca823d60e6496aa853f75db16c (patch)
treeb7746b181c1564c6b1abd2e906662f9e6b008417 /cli/ops/resources.rs
parent6f70e6e72ba2d5c1de7495adac37c1e4f4e86b24 (diff)
Use gotham-like state for ops (#7385)
Provides a concrete state type that can be dynamically added. This is necessary for op crates. * renames BasicState to OpState * async ops take `Rc<RefCell<OpState>>` * sync ops take `&mut OpState` * removes `OpRegistry`, `OpRouter` traits * `get_error_class_fn` moved to OpState * ResourceTable moved to OpState
Diffstat (limited to 'cli/ops/resources.rs')
-rw-r--r--cli/ops/resources.rs18
1 files changed, 7 insertions, 11 deletions
diff --git a/cli/ops/resources.rs b/cli/ops/resources.rs
index d7c2fd142..78e35828e 100644
--- a/cli/ops/resources.rs
+++ b/cli/ops/resources.rs
@@ -1,31 +1,28 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-use crate::state::State;
use deno_core::ErrBox;
-use deno_core::OpRegistry;
+use deno_core::OpState;
use deno_core::ZeroCopyBuf;
use serde_derive::Deserialize;
use serde_json::Value;
-use std::rc::Rc;
-pub fn init(s: &Rc<State>) {
- s.register_op_json_sync("op_resources", op_resources);
- s.register_op_json_sync("op_close", op_close);
+pub fn init(rt: &mut deno_core::JsRuntime) {
+ super::reg_json_sync(rt, "op_resources", op_resources);
+ super::reg_json_sync(rt, "op_close", op_close);
}
fn op_resources(
- state: &State,
+ state: &mut OpState,
_args: Value,
_zero_copy: &mut [ZeroCopyBuf],
) -> Result<Value, ErrBox> {
- let resource_table = state.resource_table.borrow();
- let serialized_resources = resource_table.entries();
+ let serialized_resources = state.resource_table.entries();
Ok(json!(serialized_resources))
}
/// op_close removes a resource from the resource table.
fn op_close(
- state: &State,
+ state: &mut OpState,
args: Value,
_zero_copy: &mut [ZeroCopyBuf],
) -> Result<Value, ErrBox> {
@@ -36,7 +33,6 @@ fn op_close(
let args: CloseArgs = serde_json::from_value(args)?;
state
.resource_table
- .borrow_mut()
.close(args.rid as u32)
.ok_or_else(ErrBox::bad_resource_id)?;
Ok(json!({}))