diff options
author | Leo K <crowlkats@toaxl.com> | 2021-10-05 22:38:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-05 22:38:27 +0200 |
commit | 77a00ce1fb4ae2523e22b9b84ae09a0200502e38 (patch) | |
tree | 0027a2ff3dbff1e2b0c3afa7ce0f0e54805c7d62 /ext/websocket/lib.rs | |
parent | d67e85850688117e116bbf7054e80f30fe07afe6 (diff) |
chore: various op cleanup (#12329)
Diffstat (limited to 'ext/websocket/lib.rs')
-rw-r--r-- | ext/websocket/lib.rs | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs index ebb2186d0..32ac4cf03 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -1,7 +1,6 @@ // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. use deno_core::error::invalid_hostname; -use deno_core::error::null_opbuf; use deno_core::error::AnyError; use deno_core::futures::stream::SplitSink; use deno_core::futures::stream::SplitStream; @@ -309,29 +308,28 @@ where } #[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct SendArgs { - rid: ResourceId, - kind: String, - text: Option<String>, +#[serde(tag = "kind", content = "value", rename_all = "camelCase")] +pub enum SendValue { + Text(String), + Binary(ZeroCopyBuf), + Pong, } pub async fn op_ws_send( state: Rc<RefCell<OpState>>, - args: SendArgs, - buf: Option<ZeroCopyBuf>, + rid: ResourceId, + value: SendValue, ) -> Result<(), AnyError> { - let msg = match args.kind.as_str() { - "text" => Message::Text(args.text.unwrap()), - "binary" => Message::Binary(buf.ok_or_else(null_opbuf)?.to_vec()), - "pong" => Message::Pong(vec![]), - _ => unreachable!(), + let msg = match value { + SendValue::Text(text) => Message::Text(text), + SendValue::Binary(buf) => Message::Binary(buf.to_vec()), + SendValue::Pong => Message::Pong(vec![]), }; let resource = state .borrow_mut() .resource_table - .get::<WsStreamResource>(args.rid)?; + .get::<WsStreamResource>(rid)?; resource.send(msg).await?; Ok(()) } |