diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2021-04-05 18:40:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-05 18:40:24 +0200 |
commit | 2aed322dd507a8568b6ee6f4897e9a8e3220f763 (patch) | |
tree | e9a45c0b7688a9881ea9ce132b92554ef2955ad6 /op_crates/webgpu/buffer.rs | |
parent | 284e6c303956e8ca20af63b4ecc045438a260fe6 (diff) |
refactor: convert ops to use serde_v8 (#10009)
This commit rewrites most of the ops to use "serde_v8" instead
of "json" serialization.
Diffstat (limited to 'op_crates/webgpu/buffer.rs')
-rw-r--r-- | op_crates/webgpu/buffer.rs | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/op_crates/webgpu/buffer.rs b/op_crates/webgpu/buffer.rs index ade4122d5..19fc428cb 100644 --- a/op_crates/webgpu/buffer.rs +++ b/op_crates/webgpu/buffer.rs @@ -4,8 +4,6 @@ use deno_core::error::bad_resource_id; use deno_core::error::null_opbuf; use deno_core::error::AnyError; use deno_core::futures::channel::oneshot; -use deno_core::serde_json::json; -use deno_core::serde_json::Value; use deno_core::OpState; use deno_core::Resource; use deno_core::ResourceId; @@ -17,7 +15,7 @@ use std::rc::Rc; use std::time::Duration; use super::error::DomExceptionOperationError; -use super::error::WebGpuError; +use super::error::WebGpuResult; pub(crate) struct WebGpuBuffer(pub(crate) wgpu_core::id::BufferId); impl Resource for WebGpuBuffer { @@ -47,7 +45,7 @@ pub fn op_webgpu_create_buffer( state: &mut OpState, args: CreateBufferArgs, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<Value, AnyError> { +) -> Result<WebGpuResult, AnyError> { let instance = state.borrow::<super::Instance>(); let device_resource = state .resource_table @@ -70,10 +68,7 @@ pub fn op_webgpu_create_buffer( let rid = state.resource_table.add(WebGpuBuffer(buffer)); - Ok(json!({ - "rid": rid, - "err": maybe_err.map(WebGpuError::from) - })) + Ok(WebGpuResult::rid_err(rid, maybe_err)) } #[derive(Deserialize)] @@ -90,7 +85,7 @@ pub async fn op_webgpu_buffer_get_map_async( state: Rc<RefCell<OpState>>, args: BufferGetMapAsyncArgs, _bufs: Option<ZeroCopyBuf>, -) -> Result<Value, AnyError> { +) -> Result<WebGpuResult, AnyError> { let (sender, receiver) = oneshot::channel::<Result<(), AnyError>>(); let device; @@ -164,7 +159,7 @@ pub async fn op_webgpu_buffer_get_map_async( tokio::try_join!(device_poll_fut, receiver_fut)?; - Ok(json!({})) + Ok(WebGpuResult::empty()) } #[derive(Deserialize)] @@ -179,7 +174,7 @@ pub fn op_webgpu_buffer_get_mapped_range( state: &mut OpState, args: BufferGetMappedRangeArgs, zero_copy: Option<ZeroCopyBuf>, -) -> Result<Value, AnyError> { +) -> Result<WebGpuResult, AnyError> { let mut zero_copy = zero_copy.ok_or_else(null_opbuf)?; let instance = state.borrow::<super::Instance>(); let buffer_resource = state @@ -204,9 +199,7 @@ pub fn op_webgpu_buffer_get_mapped_range( .resource_table .add(WebGpuBufferMapped(slice_pointer, args.size as usize)); - Ok(json!({ - "rid": rid, - })) + Ok(WebGpuResult::rid(rid)) } #[derive(Deserialize)] @@ -220,7 +213,7 @@ pub fn op_webgpu_buffer_unmap( state: &mut OpState, args: BufferUnmapArgs, zero_copy: Option<ZeroCopyBuf>, -) -> Result<Value, AnyError> { +) -> Result<WebGpuResult, AnyError> { let mapped_resource = state .resource_table .take::<WebGpuBufferMapped>(args.mapped_rid) @@ -242,5 +235,5 @@ pub fn op_webgpu_buffer_unmap( let maybe_err = gfx_select!(buffer => instance.buffer_unmap(buffer)).err(); - Ok(json!({ "err": maybe_err.map(WebGpuError::from) })) + Ok(WebGpuResult::maybe_err(maybe_err)) } |