From ff47965e995e3ae4dc49b9db5268759532fa5b6e Mon Sep 17 00:00:00 2001 From: fowb Date: Sat, 12 Aug 2023 19:31:31 +0200 Subject: [PATCH] Change Mutex to RwLock --- src/api/auth/login.rs | 4 ++-- src/api/auth/register.rs | 6 +++--- src/api/users/users.rs | 4 ++-- src/instance.rs | 14 +++++++------- src/types/entities/application.rs | 16 ++++++++-------- src/types/entities/audit_log.rs | 4 ++-- src/types/entities/auto_moderation.rs | 8 ++++---- src/types/entities/channel.rs | 10 +++++----- src/types/entities/emoji.rs | 4 ++-- src/types/entities/guild.rs | 24 ++++++++++++------------ src/types/entities/guild_member.rs | 4 ++-- src/types/entities/integration.rs | 6 +++--- src/types/entities/invite.rs | 4 ++-- src/types/entities/relationship.rs | 4 ++-- src/types/entities/sticker.rs | 4 ++-- src/types/entities/team.rs | 4 ++-- src/types/entities/template.rs | 8 ++++---- src/types/entities/user_settings.rs | 8 ++++---- src/types/entities/voice_state.rs | 4 ++-- src/types/entities/webhook.rs | 6 +++--- tests/channels.rs | 22 +++++++++++----------- tests/members.rs | 2 +- tests/relationships.rs | 24 ++++++++++++------------ 23 files changed, 97 insertions(+), 97 deletions(-) diff --git a/src/api/auth/login.rs b/src/api/auth/login.rs index 447e4c0..3b3ffc6 100644 --- a/src/api/auth/login.rs +++ b/src/api/auth/login.rs @@ -1,6 +1,6 @@ use std::cell::RefCell; use std::rc::Rc; -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use reqwest::Client; use serde_json::to_string; @@ -46,7 +46,7 @@ impl Instance { login_result.token, self.clone_limits_if_some(), login_result.settings, - Arc::new(Mutex::new(object)), + Arc::new(RwLock::new(object)), gateway, ); Ok(user) diff --git a/src/api/auth/register.rs b/src/api/auth/register.rs index ea74f29..7beaa76 100644 --- a/src/api/auth/register.rs +++ b/src/api/auth/register.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use std::{cell::RefCell, rc::Rc}; use reqwest::Client; @@ -52,8 +52,8 @@ impl Instance { Rc::new(RefCell::new(self.clone())), token.clone(), self.clone_limits_if_some(), - Arc::new(Mutex::new(settings)), - Arc::new(Mutex::new(user_object)), + Arc::new(RwLock::new(settings)), + Arc::new(RwLock::new(user_object)), gateway, ); Ok(user) diff --git a/src/api/users/users.rs b/src/api/users/users.rs index fd28b7a..5041bf5 100644 --- a/src/api/users/users.rs +++ b/src/api/users/users.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use std::{cell::RefCell, rc::Rc}; use reqwest::Client; @@ -60,7 +60,7 @@ impl UserMeta { .deserialize_response::(self) .await .unwrap(); - self.object = Arc::new(Mutex::new(user_updated.clone())); + self.object = Arc::new(RwLock::new(user_updated.clone())); Ok(user_updated) } diff --git a/src/instance.rs b/src/instance.rs index 5c2e98b..4ed0f60 100644 --- a/src/instance.rs +++ b/src/instance.rs @@ -2,7 +2,7 @@ use std::cell::RefCell; use std::collections::HashMap; use std::fmt; use std::rc::Rc; -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use reqwest::Client; use serde::{Deserialize, Serialize}; @@ -91,8 +91,8 @@ pub struct UserMeta { pub belongs_to: Rc>, pub token: String, pub limits: Option>, - pub settings: Arc>, - pub object: Arc>, + pub settings: Arc>, + pub object: Arc>, pub gateway: GatewayHandle, } @@ -114,8 +114,8 @@ impl UserMeta { belongs_to: Rc>, token: String, limits: Option>, - settings: Arc>, - object: Arc>, + settings: Arc>, + object: Arc>, gateway: GatewayHandle, ) -> UserMeta { UserMeta { @@ -134,8 +134,8 @@ impl UserMeta { /// need to make a RateLimited request. To use the [`GatewayHandle`], you will have to identify /// first. pub(crate) async fn shell(instance: Rc>, token: String) -> UserMeta { - let settings = Arc::new(Mutex::new(UserSettings::default())); - let object = Arc::new(Mutex::new(User::default())); + let settings = Arc::new(RwLock::new(UserSettings::default())); + let object = Arc::new(RwLock::new(User::default())); let wss_url = instance.borrow().urls.wss.clone(); // Dummy gateway object let gateway = Gateway::new(wss_url).await.unwrap(); diff --git a/src/types/entities/application.rs b/src/types/entities/application.rs index ad48ab4..0b55626 100644 --- a/src/types/entities/application.rs +++ b/src/types/entities/application.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use bitflags::bitflags; use serde::{Deserialize, Serialize}; @@ -27,7 +27,7 @@ pub struct Application { pub bot_require_code_grant: bool, pub verify_key: String, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub owner: Arc>, + pub owner: Arc>, pub flags: u64, #[cfg(feature = "sqlx")] pub redirect_uris: Option>>, @@ -49,7 +49,7 @@ pub struct Application { #[cfg(feature = "sqlx")] pub install_params: Option>, #[cfg(not(feature = "sqlx"))] - pub install_params: Option>>, + pub install_params: Option>>, pub terms_of_service_url: Option, pub privacy_policy_url: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] @@ -142,7 +142,7 @@ pub struct ApplicationCommand { pub application_id: Snowflake, pub name: String, pub description: String, - pub options: Vec>>, + pub options: Vec>>, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -154,7 +154,7 @@ pub struct ApplicationCommandOption { pub description: String, pub required: bool, pub choices: Vec, - pub options: Arc>>, + pub options: Arc>>, } #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] @@ -190,14 +190,14 @@ pub enum ApplicationCommandOptionType { pub struct ApplicationCommandInteractionData { pub id: Snowflake, pub name: String, - pub options: Vec>>, + pub options: Vec>>, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ApplicationCommandInteractionDataOption { pub name: String, pub value: Value, - pub options: Vec>>, + pub options: Vec>>, } #[derive(Debug, Default, Clone, Serialize, Deserialize)] @@ -206,7 +206,7 @@ pub struct GuildApplicationCommandPermissions { pub id: Snowflake, pub application_id: Snowflake, pub guild_id: Snowflake, - pub permissions: Vec>>, + pub permissions: Vec>>, } #[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)] diff --git a/src/types/entities/audit_log.rs b/src/types/entities/audit_log.rs index e0d05e3..be14f0f 100644 --- a/src/types/entities/audit_log.rs +++ b/src/types/entities/audit_log.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use serde::{Deserialize, Serialize}; @@ -8,7 +8,7 @@ use crate::types::utils::Snowflake; /// See pub struct AuditLogEntry { pub target_id: Option, - pub changes: Option>>>, + pub changes: Option>>>, pub user_id: Option, pub id: Snowflake, // to:do implement an enum for these types diff --git a/src/types/entities/auto_moderation.rs b/src/types/entities/auto_moderation.rs index afb1ec6..77f4fa2 100644 --- a/src/types/entities/auto_moderation.rs +++ b/src/types/entities/auto_moderation.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use serde::{Deserialize, Serialize}; use serde_repr::{Deserialize_repr, Serialize_repr}; @@ -14,8 +14,8 @@ pub struct AutoModerationRule { pub creator_id: Snowflake, pub event_type: AutoModerationRuleEventType, pub trigger_type: AutoModerationRuleTriggerType, - pub trigger_metadata: Arc>, - pub actions: Vec>>, + pub trigger_metadata: Arc>, + pub actions: Vec>>, pub enabled: bool, pub exempt_roles: Vec, pub exempt_channels: Vec, @@ -92,7 +92,7 @@ pub enum AutoModerationRuleKeywordPresetType { pub struct AutoModerationAction { #[serde(rename = "type")] pub action_type: AutoModerationActionType, - pub metadata: Option>>, + pub metadata: Option>>, } #[derive(Serialize_repr, Deserialize_repr, Debug, Clone, Default)] diff --git a/src/types/entities/channel.rs b/src/types/entities/channel.rs index 61754f0..96cf557 100644 --- a/src/types/entities/channel.rs +++ b/src/types/entities/channel.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use chorus_macros::Updateable; use chrono::Utc; @@ -48,7 +48,7 @@ pub struct Channel { pub last_pin_timestamp: Option, pub managed: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub member: Option>>, + pub member: Option>>, pub member_count: Option, pub message_count: Option, pub name: Option, @@ -58,12 +58,12 @@ pub struct Channel { #[cfg(feature = "sqlx")] pub permission_overwrites: Option>>, #[cfg(not(feature = "sqlx"))] - pub permission_overwrites: Option>>>, + pub permission_overwrites: Option>>>, pub permissions: Option, pub position: Option, pub rate_limit_per_user: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub recipients: Option>>>, + pub recipients: Option>>>, pub rtc_region: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub thread_metadata: Option, @@ -156,7 +156,7 @@ pub struct ThreadMember { pub user_id: Option, pub join_timestamp: Option, pub flags: Option, - pub member: Option>>, + pub member: Option>>, } #[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)] diff --git a/src/types/entities/emoji.rs b/src/types/entities/emoji.rs index 38d7da7..f96b2b5 100644 --- a/src/types/entities/emoji.rs +++ b/src/types/entities/emoji.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use serde::{Deserialize, Serialize}; @@ -17,7 +17,7 @@ pub struct Emoji { #[cfg(not(feature = "sqlx"))] pub roles: Option>, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub user: Option>>, + pub user: Option>>, pub require_colons: Option, pub managed: Option, pub animated: Option, diff --git a/src/types/entities/guild.rs b/src/types/entities/guild.rs index 651884f..b95b68a 100644 --- a/src/types/entities/guild.rs +++ b/src/types/entities/guild.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; @@ -27,13 +27,13 @@ pub struct Guild { #[cfg_attr(feature = "sqlx", sqlx(skip))] pub bans: Option>, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub channels: Option>>>, + pub channels: Option>>>, pub default_message_notifications: Option, pub description: Option, pub discovery_splash: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] #[serde(default)] - pub emojis: Vec>>, + pub emojis: Vec>>, pub explicit_content_filter: Option, //#[cfg_attr(feature = "sqlx", sqlx(try_from = "String"))] pub features: Option, @@ -42,7 +42,7 @@ pub struct Guild { pub icon_hash: Option, pub id: Snowflake, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub invites: Option>>>, + pub invites: Option>>>, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub joined_at: Option, pub large: Option, @@ -68,7 +68,7 @@ pub struct Guild { pub public_updates_channel_id: Option, pub region: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub roles: Option>>>, + pub roles: Option>>>, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub rules_channel: Option, pub rules_channel_id: Option, @@ -81,13 +81,13 @@ pub struct Guild { pub vanity_url_code: Option, pub verification_level: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub voice_states: Option>>>, + pub voice_states: Option>>>, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub webhooks: Option>>>, + pub webhooks: Option>>>, #[cfg(feature = "sqlx")] pub welcome_screen: Option>, #[cfg(not(feature = "sqlx"))] - pub welcome_screen: Option>>, + pub welcome_screen: Option>>, pub widget_channel_id: Option, pub widget_enabled: Option, } @@ -113,11 +113,11 @@ pub struct GuildInvite { pub created_at: DateTime, pub expires_at: Option>, pub guild_id: Snowflake, - pub guild: Option>>, + pub guild: Option>>, pub channel_id: Snowflake, - pub channel: Option>>, + pub channel: Option>>, pub inviter_id: Option, - pub inviter: Option>>, + pub inviter: Option>>, pub target_user_id: Option, pub target_user: Option, pub target_user_type: Option, @@ -151,7 +151,7 @@ pub struct GuildScheduledEvent { pub entity_type: GuildScheduledEventEntityType, pub entity_id: Option, pub entity_metadata: Option, - pub creator: Option>>, + pub creator: Option>>, pub user_count: Option, pub image: Option, } diff --git a/src/types/entities/guild_member.rs b/src/types/entities/guild_member.rs index af63cfb..bf2f93b 100644 --- a/src/types/entities/guild_member.rs +++ b/src/types/entities/guild_member.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use serde::{Deserialize, Serialize}; @@ -10,7 +10,7 @@ use crate::types::{entities::PublicUser, Snowflake}; /// # Reference /// See pub struct GuildMember { - pub user: Option>>, + pub user: Option>>, pub nick: Option, pub avatar: Option, pub roles: Vec, diff --git a/src/types/entities/integration.rs b/src/types/entities/integration.rs index a95c33c..0913213 100644 --- a/src/types/entities/integration.rs +++ b/src/types/entities/integration.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; @@ -23,14 +23,14 @@ pub struct Integration { pub expire_behaviour: Option, pub expire_grace_period: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub user: Option>>, + pub user: Option>>, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub account: IntegrationAccount, pub synced_at: Option>, pub subscriber_count: Option, pub revoked: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub application: Option>>, + pub application: Option>>, pub scopes: Option>, } diff --git a/src/types/entities/invite.rs b/src/types/entities/invite.rs index 7eefd98..1e6befc 100644 --- a/src/types/entities/invite.rs +++ b/src/types/entities/invite.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; @@ -70,7 +70,7 @@ pub enum NSFWLevel { /// See #[derive(Debug, Serialize, Deserialize)] pub struct InviteStageInstance { - pub members: Vec>>, + pub members: Vec>>, pub participant_count: i32, pub speaker_count: i32, pub topic: String, diff --git a/src/types/entities/relationship.rs b/src/types/entities/relationship.rs index a5f5bcb..576d99a 100644 --- a/src/types/entities/relationship.rs +++ b/src/types/entities/relationship.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; @@ -15,7 +15,7 @@ pub struct Relationship { #[serde(rename = "type")] pub relationship_type: RelationshipType, pub nickname: Option, - pub user: Arc>, + pub user: Arc>, pub since: Option>, } diff --git a/src/types/entities/sticker.rs b/src/types/entities/sticker.rs index 42edb7f..5413112 100644 --- a/src/types/entities/sticker.rs +++ b/src/types/entities/sticker.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use serde::{Deserialize, Serialize}; @@ -24,7 +24,7 @@ pub struct Sticker { pub available: Option, pub guild_id: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub user: Option>>, + pub user: Option>>, pub sort_value: Option, } diff --git a/src/types/entities/team.rs b/src/types/entities/team.rs index fe6562b..8e32f55 100644 --- a/src/types/entities/team.rs +++ b/src/types/entities/team.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use serde::{Deserialize, Serialize}; @@ -21,5 +21,5 @@ pub struct TeamMember { pub membership_state: u8, pub permissions: Vec, pub team_id: Snowflake, - pub user: Arc>, + pub user: Arc>, } diff --git a/src/types/entities/template.rs b/src/types/entities/template.rs index 0550e9e..1305a98 100644 --- a/src/types/entities/template.rs +++ b/src/types/entities/template.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; @@ -18,13 +18,13 @@ pub struct GuildTemplate { pub usage_count: Option, pub creator_id: Snowflake, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub creator: Arc>, + pub creator: Arc>, pub created_at: DateTime, pub updated_at: DateTime, pub source_guild_id: Snowflake, #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub source_guild: Vec>>, + pub source_guild: Vec>>, // Unsure how a {recursive: Guild} looks like, might be a Vec? #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub serialized_source_guild: Vec>>, + pub serialized_source_guild: Vec>>, } diff --git a/src/types/entities/user_settings.rs b/src/types/entities/user_settings.rs index 4705a92..1be2c0a 100644 --- a/src/types/entities/user_settings.rs +++ b/src/types/entities/user_settings.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use chrono::{serde::ts_milliseconds_option, Utc}; use serde::{Deserialize, Serialize}; @@ -75,7 +75,7 @@ pub struct UserSettings { #[cfg(not(feature = "sqlx"))] pub restricted_guilds: Vec, pub show_current_game: bool, - pub status: Arc>, + pub status: Arc>, pub stream_notifications_enabled: bool, pub theme: UserTheme, pub timezone_offset: i16, @@ -111,7 +111,7 @@ impl Default for UserSettings { render_reactions: true, restricted_guilds: Default::default(), show_current_game: true, - status: Arc::new(Mutex::new(UserStatus::Online)), + status: Arc::new(RwLock::new(UserStatus::Online)), stream_notifications_enabled: false, theme: UserTheme::Dark, timezone_offset: 0, @@ -151,5 +151,5 @@ pub struct GuildFolder { #[derive(Debug, Serialize, Deserialize)] pub struct LoginResult { pub token: String, - pub settings: Arc>, + pub settings: Arc>, } diff --git a/src/types/entities/voice_state.rs b/src/types/entities/voice_state.rs index 29b8e6e..9f6a2c0 100644 --- a/src/types/entities/voice_state.rs +++ b/src/types/entities/voice_state.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; @@ -16,7 +16,7 @@ pub struct VoiceState { pub guild: Option, pub channel_id: Option, pub user_id: Snowflake, - pub member: Option>>, + pub member: Option>>, pub session_id: Snowflake, pub token: Option, pub deaf: bool, diff --git a/src/types/entities/webhook.rs b/src/types/entities/webhook.rs index f8b6530..079f584 100644 --- a/src/types/entities/webhook.rs +++ b/src/types/entities/webhook.rs @@ -1,4 +1,4 @@ -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, RwLock}; use serde::{Deserialize, Serialize}; @@ -22,10 +22,10 @@ pub struct Webhook { pub application_id: Snowflake, #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub user: Option>>, + pub user: Option>>, #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr(feature = "sqlx", sqlx(skip))] - pub source_guild: Option>>, + pub source_guild: Option>>, #[serde(skip_serializing_if = "Option::is_none")] pub url: Option, } diff --git a/tests/channels.rs b/tests/channels.rs index d810c10..8dafc48 100644 --- a/tests/channels.rs +++ b/tests/channels.rs @@ -59,7 +59,7 @@ async fn modify_channel() { PermissionFlags::MANAGE_CHANNELS, PermissionFlags::MANAGE_MESSAGES, ])); - let user_id: types::Snowflake = bundle.user.object.lock().unwrap().id; + let user_id: types::Snowflake = bundle.user.object.read().unwrap().id; let permission_override = PermissionOverwrite { id: user_id, overwrite_type: "1".to_string(), @@ -144,7 +144,7 @@ async fn create_dm() { let other_user = bundle.create_user("integrationtestuser2").await; let user = &mut bundle.user; let private_channel_create_schema = PrivateChannelCreateSchema { - recipients: Some(Vec::from([other_user.object.lock().unwrap().id])), + recipients: Some(Vec::from([other_user.object.read().unwrap().id])), access_tokens: None, nicks: None, }; @@ -160,11 +160,11 @@ async fn create_dm() { .unwrap() .get(0) .unwrap() - .lock() + .read() .unwrap() .id .clone(), - other_user.object.lock().unwrap().id + other_user.object.read().unwrap().id ); assert_eq!( dm_channel @@ -173,11 +173,11 @@ async fn create_dm() { .unwrap() .get(1) .unwrap() - .lock() + .read() .unwrap() .id .clone(), - user.object.lock().unwrap().id.clone() + user.object.read().unwrap().id.clone() ); common::teardown(bundle).await; } @@ -189,9 +189,9 @@ async fn remove_add_person_from_to_dm() { let mut bundle = common::setup().await; let mut other_user = bundle.create_user("integrationtestuser2").await; let mut third_user = bundle.create_user("integrationtestuser3").await; - let third_user_id = third_user.object.lock().unwrap().id; - let other_user_id = other_user.object.lock().unwrap().id; - let user_id = bundle.user.object.lock().unwrap().id; + let third_user_id = third_user.object.read().unwrap().id; + let other_user_id = other_user.object.read().unwrap().id; + let user_id = bundle.user.object.read().unwrap().id; let user = &mut bundle.user; let private_channel_create_schema = PrivateChannelCreateSchema { recipients: Some(Vec::from([other_user_id, third_user_id])), @@ -234,7 +234,7 @@ async fn remove_add_person_from_to_dm() { .unwrap() .get(0) .unwrap() - .lock() + .read() .unwrap() .id, other_user_id @@ -246,7 +246,7 @@ async fn remove_add_person_from_to_dm() { .unwrap() .get(1) .unwrap() - .lock() + .read() .unwrap() .id, user_id diff --git a/tests/members.rs b/tests/members.rs index a314be7..aae8db0 100644 --- a/tests/members.rs +++ b/tests/members.rs @@ -7,7 +7,7 @@ async fn add_remove_role() -> ChorusResult<()> { let mut bundle = common::setup().await; let guild = bundle.guild.id; let role = bundle.role.id; - let member_id = bundle.user.object.lock().unwrap().id; + let member_id = bundle.user.object.read().unwrap().id; GuildMember::add_role(&mut bundle.user, guild, member_id, role).await?; let member = GuildMember::get(&mut bundle.user, guild, member_id) .await diff --git a/tests/relationships.rs b/tests/relationships.rs index 2773474..09ddab0 100644 --- a/tests/relationships.rs +++ b/tests/relationships.rs @@ -7,9 +7,9 @@ async fn test_get_mutual_relationships() { let mut bundle = common::setup().await; let mut other_user = bundle.create_user("integrationtestuser2").await; let user = &mut bundle.user; - let username = user.object.lock().unwrap().username.clone(); - let discriminator = user.object.lock().unwrap().discriminator.clone(); - let other_user_id: types::Snowflake = other_user.object.lock().unwrap().id; + let username = user.object.read().unwrap().username.clone(); + let discriminator = user.object.read().unwrap().discriminator.clone(); + let other_user_id: types::Snowflake = other_user.object.read().unwrap().id; let friend_request_schema = types::FriendRequestSendSchema { username, discriminator: Some(discriminator), @@ -28,8 +28,8 @@ async fn test_get_relationships() { let mut bundle = common::setup().await; let mut other_user = bundle.create_user("integrationtestuser2").await; let user = &mut bundle.user; - let username = user.object.lock().unwrap().username.clone(); - let discriminator = user.object.lock().unwrap().discriminator.clone(); + let username = user.object.read().unwrap().username.clone(); + let discriminator = user.object.read().unwrap().discriminator.clone(); let friend_request_schema = types::FriendRequestSendSchema { username, discriminator: Some(discriminator), @@ -41,7 +41,7 @@ async fn test_get_relationships() { let relationships = user.get_relationships().await.unwrap(); assert_eq!( relationships.get(0).unwrap().id, - other_user.object.lock().unwrap().id + other_user.object.read().unwrap().id ); common::teardown(bundle).await } @@ -51,8 +51,8 @@ async fn test_modify_relationship_friends() { let mut bundle = common::setup().await; let mut other_user = bundle.create_user("integrationtestuser2").await; let user = &mut bundle.user; - let user_id: types::Snowflake = user.object.lock().unwrap().id; - let other_user_id: types::Snowflake = other_user.object.lock().unwrap().id; + let user_id: types::Snowflake = user.object.read().unwrap().id; + let other_user_id: types::Snowflake = other_user.object.read().unwrap().id; other_user .modify_user_relationship(user_id, types::RelationshipType::Friends) @@ -61,7 +61,7 @@ async fn test_modify_relationship_friends() { let relationships = user.get_relationships().await.unwrap(); assert_eq!( relationships.get(0).unwrap().id, - other_user.object.lock().unwrap().id + other_user.object.read().unwrap().id ); assert_eq!( relationships.get(0).unwrap().relationship_type, @@ -70,7 +70,7 @@ async fn test_modify_relationship_friends() { let relationships = other_user.get_relationships().await.unwrap(); assert_eq!( relationships.get(0).unwrap().id, - user.object.lock().unwrap().id + user.object.read().unwrap().id ); assert_eq!( relationships.get(0).unwrap().relationship_type, @@ -102,7 +102,7 @@ async fn test_modify_relationship_block() { let mut bundle = common::setup().await; let mut other_user = bundle.create_user("integrationtestuser2").await; let user = &mut bundle.user; - let user_id: types::Snowflake = user.object.lock().unwrap().id; + let user_id: types::Snowflake = user.object.read().unwrap().id; other_user .modify_user_relationship(user_id, types::RelationshipType::Blocked) @@ -113,7 +113,7 @@ async fn test_modify_relationship_block() { let relationships = other_user.get_relationships().await.unwrap(); assert_eq!( relationships.get(0).unwrap().id, - user.object.lock().unwrap().id + user.object.read().unwrap().id ); assert_eq!( relationships.get(0).unwrap().relationship_type,