summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-09-21 16:08:23 +0200
committerGitHub <noreply@github.com>2023-09-21 08:08:23 -0600
commit142449ecab20006c5cfd15462814650596bc034d (patch)
treeb4e796585f870fbf0b1ebe696a474abb1a09d2ac /runtime
parentcf6f649829fbb0562681bc9db0c4c1261d4a40b1 (diff)
refactor: rewrite some ops to op2 macro (#20603)
Diffstat (limited to 'runtime')
-rw-r--r--runtime/examples/extension_with_ops/main.rs6
-rw-r--r--runtime/ops/http.rs13
-rw-r--r--runtime/ops/os/mod.rs16
-rw-r--r--runtime/ops/tty.rs5
-rw-r--r--runtime/ops/web_worker/sync_fetch.rs7
5 files changed, 24 insertions, 23 deletions
diff --git a/runtime/examples/extension_with_ops/main.rs b/runtime/examples/extension_with_ops/main.rs
index 1feb4ba27..2ef562ec9 100644
--- a/runtime/examples/extension_with_ops/main.rs
+++ b/runtime/examples/extension_with_ops/main.rs
@@ -4,7 +4,7 @@ use std::path::Path;
use std::rc::Rc;
use deno_core::error::AnyError;
-use deno_core::op;
+use deno_core::op2;
use deno_core::FsModuleLoader;
use deno_core::ModuleSpecifier;
use deno_runtime::permissions::PermissionsContainer;
@@ -13,8 +13,8 @@ use deno_runtime::worker::WorkerOptions;
deno_core::extension!(hello_runtime, ops = [op_hello]);
-#[op]
-fn op_hello(text: &str) {
+#[op2(fast)]
+fn op_hello(#[string] text: &str) {
println!("Hello {}!", text);
}
diff --git a/runtime/ops/http.rs b/runtime/ops/http.rs
index 35e181d3e..07757850c 100644
--- a/runtime/ops/http.rs
+++ b/runtime/ops/http.rs
@@ -7,7 +7,7 @@ use deno_core::error::bad_resource;
use deno_core::error::bad_resource_id;
use deno_core::error::custom_error;
use deno_core::error::AnyError;
-use deno_core::op;
+use deno_core::op2;
use deno_core::OpState;
use deno_core::RcRef;
use deno_core::ResourceId;
@@ -32,10 +32,11 @@ deno_core::extension!(
ops = [op_http_start, op_http_upgrade],
);
-#[op]
+#[op2(fast)]
+#[smi]
fn op_http_start(
state: &mut OpState,
- tcp_stream_rid: ResourceId,
+ #[smi] tcp_stream_rid: ResourceId,
) -> Result<ResourceId, AnyError> {
if let Ok(resource_rc) = state
.resource_table
@@ -96,11 +97,11 @@ pub struct HttpUpgradeResult {
read_buf: ToJsBuffer,
}
-#[op]
+#[op2(async)]
+#[serde]
async fn op_http_upgrade(
state: Rc<RefCell<OpState>>,
- rid: ResourceId,
- _: (),
+ #[smi] rid: ResourceId,
) -> Result<HttpUpgradeResult, AnyError> {
let stream = state
.borrow_mut()
diff --git a/runtime/ops/os/mod.rs b/runtime/ops/os/mod.rs
index 80f37514f..166ccb867 100644
--- a/runtime/ops/os/mod.rs
+++ b/runtime/ops/os/mod.rs
@@ -250,9 +250,9 @@ fn op_system_memory_info(
Ok(sys_info::mem_info())
}
-// TODO(bartlomieju): op2 doesn't support cfg attrs
#[cfg(not(windows))]
-#[op]
+#[op2]
+#[smi]
fn op_gid(state: &mut OpState) -> Result<Option<u32>, AnyError> {
state
.borrow_mut::<PermissionsContainer>()
@@ -264,9 +264,9 @@ fn op_gid(state: &mut OpState) -> Result<Option<u32>, AnyError> {
}
}
-// TODO(bartlomieju): op2 doesn't support cfg attrs
#[cfg(windows)]
-#[op]
+#[op2]
+#[smi]
fn op_gid(state: &mut OpState) -> Result<Option<u32>, AnyError> {
state
.borrow_mut::<PermissionsContainer>()
@@ -274,9 +274,9 @@ fn op_gid(state: &mut OpState) -> Result<Option<u32>, AnyError> {
Ok(None)
}
-// TODO(bartlomieju): op2 doesn't support cfg attrs
#[cfg(not(windows))]
-#[op]
+#[op2]
+#[smi]
fn op_uid(state: &mut OpState) -> Result<Option<u32>, AnyError> {
state
.borrow_mut::<PermissionsContainer>()
@@ -288,9 +288,9 @@ fn op_uid(state: &mut OpState) -> Result<Option<u32>, AnyError> {
}
}
-// TODO(bartlomieju): op2 doesn't support cfg attrs
#[cfg(windows)]
-#[op]
+#[op2]
+#[smi]
fn op_uid(state: &mut OpState) -> Result<Option<u32>, AnyError> {
state
.borrow_mut::<PermissionsContainer>()
diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs
index 07a7a0b73..8157a4517 100644
--- a/runtime/ops/tty.rs
+++ b/runtime/ops/tty.rs
@@ -4,7 +4,6 @@ use std::io::Error;
use std::io::IsTerminal;
use deno_core::error::AnyError;
-use deno_core::op;
use deno_core::op2;
use deno_core::OpState;
use deno_core::ResourceHandle;
@@ -188,10 +187,10 @@ fn op_isatty(state: &mut OpState, rid: u32) -> Result<bool, AnyError> {
})
}
-#[op(fast)]
+#[op2(fast)]
fn op_console_size(
state: &mut OpState,
- result: &mut [u32],
+ #[buffer] result: &mut [u32],
) -> Result<(), AnyError> {
fn check_console_size(
state: &mut OpState,
diff --git a/runtime/ops/web_worker/sync_fetch.rs b/runtime/ops/web_worker/sync_fetch.rs
index 4d2f4ca5a..ec79118b2 100644
--- a/runtime/ops/web_worker/sync_fetch.rs
+++ b/runtime/ops/web_worker/sync_fetch.rs
@@ -6,7 +6,7 @@ use crate::web_worker::WebWorkerInternalHandle;
use crate::web_worker::WebWorkerType;
use deno_core::error::type_error;
use deno_core::error::AnyError;
-use deno_core::op;
+use deno_core::op2;
use deno_core::url::Url;
use deno_core::OpState;
use deno_fetch::data_url::DataUrl;
@@ -33,10 +33,11 @@ pub struct SyncFetchScript {
script: String,
}
-#[op]
+#[op2]
+#[serde]
pub fn op_worker_sync_fetch(
state: &mut OpState,
- scripts: Vec<String>,
+ #[serde] scripts: Vec<String>,
mut loose_mime_checks: bool,
) -> Result<Vec<SyncFetchScript>, AnyError> {
let handle = state.borrow::<WebWorkerInternalHandle>().clone();