From 5e7435fb8010a6d90f1b88d68ee8c431abf846e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 14 Sep 2023 23:05:18 +0200 Subject: refactor: rewrite more ops to op2 macro (#20478) --- ext/http/lib.rs | 50 ++++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 22 deletions(-) (limited to 'ext/http') diff --git a/ext/http/lib.rs b/ext/http/lib.rs index 719dcd6de..7d2397fff 100644 --- a/ext/http/lib.rs +++ b/ext/http/lib.rs @@ -20,7 +20,7 @@ use deno_core::futures::stream::Peekable; use deno_core::futures::FutureExt; use deno_core::futures::StreamExt; use deno_core::futures::TryFutureExt; -use deno_core::op; +use deno_core::op2; use deno_core::unsync::spawn; use deno_core::AsyncRefCell; use deno_core::AsyncResult; @@ -511,10 +511,11 @@ struct NextRequestResponse( String, ); -#[op] +#[op2(async)] +#[serde] async fn op_http_accept( state: Rc>, - rid: ResourceId, + #[smi] rid: ResourceId, ) -> Result, AnyError> { let conn = state.borrow().resource_table.get::(rid)?; @@ -613,13 +614,13 @@ fn req_headers( headers } -#[op] +#[op2(async)] async fn op_http_write_headers( state: Rc>, - rid: u32, - status: u16, - headers: Vec<(ByteString, ByteString)>, - data: Option, + #[smi] rid: u32, + #[smi] status: u16, + #[serde] headers: Vec<(ByteString, ByteString)>, + #[serde] data: Option, ) -> Result<(), AnyError> { let stream = state .borrow_mut() @@ -683,10 +684,11 @@ async fn op_http_write_headers( } } -#[op] +#[op2] +#[serde] fn op_http_headers( state: &mut OpState, - rid: u32, + #[smi] rid: u32, ) -> Result, AnyError> { let stream = state.resource_table.get::(rid)?; let rd = RcRef::map(&stream, |r| &r.rd) @@ -832,11 +834,11 @@ fn should_compress(headers: &hyper::HeaderMap) -> bool { .unwrap_or_default() } -#[op] +#[op2(async)] async fn op_http_write_resource( state: Rc>, - rid: ResourceId, - stream: ResourceId, + #[smi] rid: ResourceId, + #[smi] stream: ResourceId, ) -> Result<(), AnyError> { let http_stream = state .borrow() @@ -891,11 +893,11 @@ async fn op_http_write_resource( Ok(()) } -#[op] +#[op2(async)] async fn op_http_write( state: Rc>, - rid: ResourceId, - buf: JsBuffer, + #[smi] rid: ResourceId, + #[buffer] buf: JsBuffer, ) -> Result<(), AnyError> { let stream = state .borrow() @@ -944,10 +946,10 @@ async fn op_http_write( /// Gracefully closes the write half of the HTTP stream. Note that this does not /// remove the HTTP stream resource from the resource table; it still has to be /// closed with `Deno.core.close()`. -#[op] +#[op2(async)] async fn op_http_shutdown( state: Rc>, - rid: ResourceId, + #[smi] rid: ResourceId, ) -> Result<(), AnyError> { let stream = state .borrow() @@ -979,8 +981,11 @@ async fn op_http_shutdown( Ok(()) } -#[op] -fn op_http_websocket_accept_header(key: String) -> Result { +#[op2] +#[string] +fn op_http_websocket_accept_header( + #[string] key: String, +) -> Result { let digest = ring::digest::digest( &ring::digest::SHA1_FOR_LEGACY_USE_ONLY, format!("{key}258EAFA5-E914-47DA-95CA-C5AB0DC85B11").as_bytes(), @@ -988,10 +993,11 @@ fn op_http_websocket_accept_header(key: String) -> Result { Ok(base64::encode(digest)) } -#[op] +#[op2(async)] +#[smi] async fn op_http_upgrade_websocket( state: Rc>, - rid: ResourceId, + #[smi] rid: ResourceId, ) -> Result { let stream = state .borrow_mut() -- cgit v1.2.3