From 887ba4a1b10cf0341e0a6bace1f15ea5456e9f04 Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Wed, 16 Aug 2023 21:26:27 +0200 Subject: [PATCH] Make trait Debug --- chorus-macros/src/lib.rs | 2 +- src/types/entities/channel.rs | 1 + src/types/entities/emoji.rs | 1 + src/types/entities/guild.rs | 1 + src/types/entities/mod.rs | 17 +++++++++++------ src/types/entities/role.rs | 1 + src/types/entities/user.rs | 1 + src/types/entities/voice_state.rs | 1 + src/types/entities/webhook.rs | 1 + src/types/events/channel.rs | 3 +++ 10 files changed, 22 insertions(+), 7 deletions(-) diff --git a/chorus-macros/src/lib.rs b/chorus-macros/src/lib.rs index baac40b..f825568 100644 --- a/chorus-macros/src/lib.rs +++ b/chorus-macros/src/lib.rs @@ -104,7 +104,7 @@ pub fn composite_derive(input: TokenStream) -> TokenStream { let ident = &input.ident; let expanded = quote! { #[async_trait::async_trait(?Send)] - impl Composite for #ident { + impl Composite for #ident { async fn watch_whole(self, gateway: &GatewayHandle) -> Self { Self { #(#field_exprs,)* diff --git a/src/types/entities/channel.rs b/src/types/entities/channel.rs index ad776d8..3866e01 100644 --- a/src/types/entities/channel.rs +++ b/src/types/entities/channel.rs @@ -5,6 +5,7 @@ use chrono::Utc; use serde::{Deserialize, Serialize}; use serde_aux::prelude::deserialize_string_from_number; use serde_repr::{Deserialize_repr, Serialize_repr}; +use std::fmt::Debug; use crate::gateway::{GatewayHandle, Updateable}; use crate::types::{ diff --git a/src/types/entities/emoji.rs b/src/types/entities/emoji.rs index 308c41b..68700e6 100644 --- a/src/types/entities/emoji.rs +++ b/src/types/entities/emoji.rs @@ -1,3 +1,4 @@ +use std::fmt::Debug; use std::sync::{Arc, RwLock}; use chorus_macros::{Composite, Updateable}; diff --git a/src/types/entities/guild.rs b/src/types/entities/guild.rs index 7f73403..3f59055 100644 --- a/src/types/entities/guild.rs +++ b/src/types/entities/guild.rs @@ -1,3 +1,4 @@ +use std::fmt::Debug; use std::sync::{Arc, RwLock}; use chorus_macros::{observe_option_vec, observe_vec, Composite, Updateable}; diff --git a/src/types/entities/mod.rs b/src/types/entities/mod.rs index 7f8cc56..9267374 100644 --- a/src/types/entities/mod.rs +++ b/src/types/entities/mod.rs @@ -24,6 +24,7 @@ pub use webhook::*; use crate::gateway::{GatewayHandle, Updateable}; use async_trait::async_trait; +use std::fmt::Debug; use std::sync::{Arc, RwLock}; mod application; @@ -51,7 +52,7 @@ mod voice_state; mod webhook; #[async_trait(?Send)] -pub trait Composite { +pub trait Composite { async fn watch_whole(self, gateway: &GatewayHandle) -> Self; async fn option_observe_fn( @@ -59,11 +60,12 @@ pub trait Composite { gateway: &GatewayHandle, ) -> Option>> where - T: Composite, + T: Composite + Debug, { + println!("Processed option value."); if let Some(value) = value { let value = value.clone(); - Some(gateway.observe_and_get(value).await) + Some(gateway.observe(value).await) } else { None } @@ -76,10 +78,11 @@ pub trait Composite { where T: Composite, { + println!("Processed option vec value."); if let Some(value) = value { let mut vec = Vec::new(); for component in value.into_iter() { - vec.push(gateway.observe_and_get(component).await); + vec.push(gateway.observe(component).await); } Some(vec) } else { @@ -91,7 +94,8 @@ pub trait Composite { where T: Composite, { - gateway.observe_and_get(value).await + println!("Processed value."); + gateway.observe(value).await } async fn vec_observe_fn( @@ -101,9 +105,10 @@ pub trait Composite { where T: Composite, { + println!("Processed vec value."); let mut vec = Vec::new(); for component in value.into_iter() { - vec.push(gateway.observe_and_get(component).await); + vec.push(gateway.observe(component).await); } vec } diff --git a/src/types/entities/role.rs b/src/types/entities/role.rs index 9fac835..22dceff 100644 --- a/src/types/entities/role.rs +++ b/src/types/entities/role.rs @@ -2,6 +2,7 @@ use bitflags::bitflags; use chorus_macros::{Composite, Updateable}; use serde::{Deserialize, Serialize}; use serde_aux::prelude::{deserialize_option_number_from_string, deserialize_string_from_number}; +use std::fmt::Debug; use crate::gateway::{GatewayHandle, Updateable}; use crate::types::{utils::Snowflake, Composite}; diff --git a/src/types/entities/user.rs b/src/types/entities/user.rs index 56329b2..aadfd35 100644 --- a/src/types/entities/user.rs +++ b/src/types/entities/user.rs @@ -2,6 +2,7 @@ use chorus_macros::{Composite, Updateable}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use serde_aux::prelude::deserialize_option_number_from_string; +use std::fmt::Debug; use crate::gateway::{GatewayHandle, Updateable}; use crate::types::{utils::Snowflake, Composite}; diff --git a/src/types/entities/voice_state.rs b/src/types/entities/voice_state.rs index e74aa7d..c879c8e 100644 --- a/src/types/entities/voice_state.rs +++ b/src/types/entities/voice_state.rs @@ -3,6 +3,7 @@ use std::sync::{Arc, RwLock}; use chorus_macros::{Composite, Updateable}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; +use std::fmt::Debug; use crate::gateway::{GatewayHandle, Updateable}; use crate::types::{ diff --git a/src/types/entities/webhook.rs b/src/types/entities/webhook.rs index dd88ca1..7771dbf 100644 --- a/src/types/entities/webhook.rs +++ b/src/types/entities/webhook.rs @@ -1,3 +1,4 @@ +use std::fmt::Debug; use std::sync::{Arc, RwLock}; use chorus_macros::{Composite, Updateable}; diff --git a/src/types/events/channel.rs b/src/types/events/channel.rs index 017c50e..5b693db 100644 --- a/src/types/events/channel.rs +++ b/src/types/events/channel.rs @@ -42,6 +42,9 @@ impl UpdateMessage for ChannelUpdate { fn update(&mut self, object_to_update: Arc>) { let mut write = object_to_update.write().unwrap(); *write = self.channel.clone(); + drop(write); + println!("{:?}", self.channel.name); + assert_eq!(self.channel.name, object_to_update.read().unwrap().name); } fn id(&self) -> Snowflake { self.channel.id