summaryrefslogtreecommitdiff
path: root/ext/node/ops/zlib/brotli.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/ops/zlib/brotli.rs')
-rw-r--r--ext/node/ops/zlib/brotli.rs32
1 files changed, 20 insertions, 12 deletions
diff --git a/ext/node/ops/zlib/brotli.rs b/ext/node/ops/zlib/brotli.rs
index b4d970970..a5c0f0f92 100644
--- a/ext/node/ops/zlib/brotli.rs
+++ b/ext/node/ops/zlib/brotli.rs
@@ -8,6 +8,7 @@ use brotli::Decompressor;
use deno_core::error::type_error;
use deno_core::error::AnyError;
use deno_core::op;
+use deno_core::op2;
use deno_core::JsBuffer;
use deno_core::OpState;
use deno_core::Resource;
@@ -71,12 +72,13 @@ fn max_compressed_size(input_size: usize) -> usize {
}
}
-#[op]
+#[op2(async)]
+#[serde]
pub async fn op_brotli_compress_async(
- input: JsBuffer,
- quality: i32,
- lgwin: i32,
- mode: u32,
+ #[buffer] input: JsBuffer,
+ #[smi] quality: i32,
+ #[smi] lgwin: i32,
+ #[smi] mode: u32,
) -> Result<ToJsBuffer, AnyError> {
tokio::task::spawn_blocking(move || {
let in_buffer = input.as_ptr();
@@ -123,10 +125,11 @@ impl Drop for BrotliCompressCtx {
}
}
-#[op]
+#[op2]
+#[smi]
pub fn op_create_brotli_compress(
state: &mut OpState,
- params: Vec<(u8, i32)>,
+ #[serde] params: Vec<(u8, i32)>,
) -> u32 {
let inst =
// SAFETY: Creates a brotli encoder instance for default allocators.
@@ -222,14 +225,18 @@ fn brotli_decompress(buffer: &[u8]) -> Result<ToJsBuffer, AnyError> {
Ok(output.into())
}
-#[op]
-pub fn op_brotli_decompress(buffer: &[u8]) -> Result<ToJsBuffer, AnyError> {
+#[op2]
+#[serde]
+pub fn op_brotli_decompress(
+ #[buffer] buffer: &[u8],
+) -> Result<ToJsBuffer, AnyError> {
brotli_decompress(buffer)
}
-#[op]
+#[op2(async)]
+#[serde]
pub async fn op_brotli_decompress_async(
- buffer: JsBuffer,
+ #[buffer] buffer: JsBuffer,
) -> Result<ToJsBuffer, AnyError> {
tokio::task::spawn_blocking(move || brotli_decompress(&buffer)).await?
}
@@ -247,7 +254,8 @@ impl Drop for BrotliDecompressCtx {
}
}
-#[op]
+#[op2(fast)]
+#[smi]
pub fn op_create_brotli_decompress(state: &mut OpState) -> u32 {
let inst =
// SAFETY: TODO(littledivy)