diff --git a/src/gateway/default/mod.rs b/src/gateway/default/mod.rs index db94cd6..ae9db05 100644 --- a/src/gateway/default/mod.rs +++ b/src/gateway/default/mod.rs @@ -48,6 +48,10 @@ impl crate::gateway::MessageCapable for tokio_tungstenite::tungstenite::Message _ => None, } } + + fn from_str(s: &str) -> Self { + Message::Text(s.to_string()) + } } #[cfg(test)] diff --git a/src/gateway/mod.rs b/src/gateway/mod.rs index 9f998d6..d9dc95c 100644 --- a/src/gateway/mod.rs +++ b/src/gateway/mod.rs @@ -87,10 +87,11 @@ const GATEWAY_CALL_SYNC: u8 = 13; /// See [types::LazyRequest] const GATEWAY_LAZY_REQUEST: u8 = 14; -pub trait MessageCapable: From { +pub trait MessageCapable { fn as_string(&self) -> Option; fn as_bytes(&self) -> Option>; fn is_empty(&self) -> bool; + fn from_str(s: &str) -> Self; } pub type ObservableObject = dyn Send + Sync + Any; @@ -523,7 +524,11 @@ impl HeartbeatHandler { let msg = tokio_tungstenite::tungstenite::Message::text(heartbeat_json); - let send_result = websocket_tx.lock().await.send(msg.into()).await; + let send_result = websocket_tx + .lock() + .await + .send(MessageCapable::from_str(msg.to_string().as_str())) + .await; if send_result.is_err() { // We couldn't send, the websocket is broken warn!("GW: Couldnt send heartbeat, websocket seems broken");