summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/lib.rs5
-rw-r--r--core/ops.rs37
-rw-r--r--core/ops_builtin.rs45
3 files changed, 48 insertions, 39 deletions
diff --git a/core/lib.rs b/core/lib.rs
index b49de3b7b..9b4ba230b 100644
--- a/core/lib.rs
+++ b/core/lib.rs
@@ -9,6 +9,7 @@ mod module_specifier;
mod modules;
mod normalize_path;
mod ops;
+mod ops_builtin;
mod ops_json;
pub mod plugin_api;
mod resources;
@@ -52,8 +53,6 @@ pub use crate::modules::ModuleSourceFuture;
pub use crate::modules::NoopModuleLoader;
pub use crate::modules::RecursiveModuleLoad;
pub use crate::normalize_path::normalize_path;
-pub use crate::ops::op_close;
-pub use crate::ops::op_resources;
pub use crate::ops::serialize_op_result;
pub use crate::ops::Op;
pub use crate::ops::OpAsyncFuture;
@@ -64,6 +63,8 @@ pub use crate::ops::OpResponse;
pub use crate::ops::OpState;
pub use crate::ops::OpTable;
pub use crate::ops::PromiseId;
+pub use crate::ops_builtin::op_close;
+pub use crate::ops_builtin::op_resources;
pub use crate::ops_json::op_async;
pub use crate::ops_json::op_sync;
pub use crate::resources::Resource;
diff --git a/core/ops.rs b/core/ops.rs
index ab6938a17..6faffba4b 100644
--- a/core/ops.rs
+++ b/core/ops.rs
@@ -1,10 +1,8 @@
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
-use crate::error::bad_resource_id;
use crate::error::type_error;
use crate::error::AnyError;
use crate::gotham_state::GothamState;
-use crate::resources::ResourceId;
use crate::resources::ResourceTable;
use crate::runtime::GetErrorClassFn;
use crate::ZeroCopyBuf;
@@ -195,41 +193,6 @@ impl Default for OpTable {
}
}
-/// Return map of resources with id as key
-/// and string representation as value.
-///
-/// This op must be wrapped in `op_sync`.
-pub fn op_resources(
- state: &mut OpState,
- _args: (),
- _zero_copy: Option<ZeroCopyBuf>,
-) -> Result<Vec<(ResourceId, String)>, AnyError> {
- let serialized_resources = state
- .resource_table
- .names()
- .map(|(rid, name)| (rid, name.to_string()))
- .collect();
- Ok(serialized_resources)
-}
-
-/// Remove a resource from the resource table.
-///
-/// This op must be wrapped in `op_sync`.
-pub fn op_close(
- state: &mut OpState,
- rid: Option<ResourceId>,
- _zero_copy: Option<ZeroCopyBuf>,
-) -> Result<(), AnyError> {
- // TODO(@AaronO): drop Option after improving type-strictness balance in serde_v8
- let rid = rid.ok_or_else(|| type_error("missing or invalid `rid`"))?;
- state
- .resource_table
- .close(rid)
- .ok_or_else(bad_resource_id)?;
-
- Ok(())
-}
-
#[cfg(test)]
mod tests {
use super::*;
diff --git a/core/ops_builtin.rs b/core/ops_builtin.rs
new file mode 100644
index 000000000..5c74c7330
--- /dev/null
+++ b/core/ops_builtin.rs
@@ -0,0 +1,45 @@
+use crate::error::bad_resource_id;
+use crate::error::type_error;
+use crate::error::AnyError;
+use crate::resources::ResourceId;
+use crate::OpState;
+use crate::ZeroCopyBuf;
+
+// TODO(@AaronO): provide these ops grouped as a runtime extension
+// e.g:
+// pub fn init_builtins() -> Extension { ... }
+
+/// Return map of resources with id as key
+/// and string representation as value.
+///
+/// This op must be wrapped in `op_sync`.
+pub fn op_resources(
+ state: &mut OpState,
+ _args: (),
+ _zero_copy: Option<ZeroCopyBuf>,
+) -> Result<Vec<(ResourceId, String)>, AnyError> {
+ let serialized_resources = state
+ .resource_table
+ .names()
+ .map(|(rid, name)| (rid, name.to_string()))
+ .collect();
+ Ok(serialized_resources)
+}
+
+/// Remove a resource from the resource table.
+///
+/// This op must be wrapped in `op_sync`.
+pub fn op_close(
+ state: &mut OpState,
+ rid: Option<ResourceId>,
+ _zero_copy: Option<ZeroCopyBuf>,
+) -> Result<(), AnyError> {
+ // TODO(@AaronO): drop Option after improving type-strictness balance in serde_v8
+ let rid = rid.ok_or_else(|| type_error("missing or invalid `rid`"))?;
+ state
+ .resource_table
+ .close(rid)
+ .ok_or_else(bad_resource_id)?;
+
+ Ok(())
+}