From 2b21933cb3245b763dba2a6ff3d43a4b283cbb46 Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Tue, 15 Aug 2023 22:19:47 +0200 Subject: [PATCH] Add back set_json. No idea when it disappeared? --- src/gateway.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/gateway.rs b/src/gateway.rs index 3fb56e7..9232c2d 100644 --- a/src/gateway.rs +++ b/src/gateway.rs @@ -1,7 +1,8 @@ use crate::errors::GatewayError; use crate::gateway::events::Events; -use crate::types::{self, Channel, ChannelUpdate, Composite, Snowflake}; -use crate::types::{UpdateMessage, WebSocketEvent}; +use crate::types::{ + self, Channel, ChannelUpdate, Composite, JsonField, Snowflake, UpdateMessage, WebSocketEvent, +}; use async_trait::async_trait; use std::any::Any; use std::collections::HashMap; @@ -496,7 +497,8 @@ impl Gateway { match event_name.as_str() { $($name => { let event = &mut self.events.lock().await.$($path).+; - match serde_json::from_str(gateway_payload.event_data.unwrap().get()) { + let json = gateway_payload.event_data.unwrap().get(); + match serde_json::from_str(json) { Err(err) => warn!("Failed to parse gateway event {event_name} ({err})"), Ok(message) => { $( @@ -506,6 +508,7 @@ impl Gateway { // `object` is the current value of the `watch::channel`. It's being passed into `message.update()` to be modified // within the closure function. Then, this closure is passed to the `tx.send_modify()` method which applies the // modification to the current value of the watch channel. + message.set_json(json.to_string()); tx.send_modify(|object| message.update(object.clone())); } else { warn!("Received {} for {}, but it has been observed to be a different type!", $name, message.id())