diff options
| author | acdenisSK <[email protected]> | 2017-10-14 22:41:25 +0200 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2017-10-14 22:41:25 +0200 |
| commit | cae014758a1d1e926a71679f02e32601c57f8d52 (patch) | |
| tree | 39270dbc2df916a91c3c4272600fd082a2604516 /src/client | |
| parent | Switch to parking_lot::{Mutex, RwLock} (diff) | |
| parent | Release v0.4.1 (diff) | |
| download | serenity-cae014758a1d1e926a71679f02e32601c57f8d52.tar.xz serenity-cae014758a1d1e926a71679f02e32601c57f8d52.zip | |
Update to account for changes made in 0.4.1
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/bridge/gateway/shard_manager.rs | 13 | ||||
| -rw-r--r-- | src/client/bridge/gateway/shard_queuer.rs | 14 | ||||
| -rw-r--r-- | src/client/bridge/gateway/shard_runner.rs | 8 | ||||
| -rw-r--r-- | src/client/dispatch.rs | 2 | ||||
| -rw-r--r-- | src/client/mod.rs | 12 |
5 files changed, 27 insertions, 22 deletions
diff --git a/src/client/bridge/gateway/shard_manager.rs b/src/client/bridge/gateway/shard_manager.rs index 4a50b56..6e3b285 100644 --- a/src/client/bridge/gateway/shard_manager.rs +++ b/src/client/bridge/gateway/shard_manager.rs @@ -32,6 +32,7 @@ pub struct ShardManager { impl ShardManager { #[cfg(feature = "framework")] + #[cfg_attr(feature = "cargo-clippy", allow(too_many_arguments))] pub fn new<H>( shard_index: u64, shard_init: u64, @@ -49,15 +50,15 @@ impl ShardManager { let runners = Arc::new(Mutex::new(HashMap::new())); let mut shard_queuer = ShardQueuer { - data: data.clone(), - event_handler: event_handler.clone(), - framework: framework.clone(), + data: Arc::clone(&data), + event_handler: Arc::clone(&event_handler), + framework: Arc::clone(&framework), last_start: None, manager_tx: thread_tx.clone(), - runners: runners.clone(), + runners: Arc::clone(&runners), rx: shard_queue_rx, - token: token.clone(), - ws_url: ws_url.clone(), + token: Arc::clone(&token), + ws_url: Arc::clone(&ws_url), threadpool, }; diff --git a/src/client/bridge/gateway/shard_queuer.rs b/src/client/bridge/gateway/shard_queuer.rs index f75e35d..cb3f749 100644 --- a/src/client/bridge/gateway/shard_queuer.rs +++ b/src/client/bridge/gateway/shard_queuer.rs @@ -80,16 +80,20 @@ impl<H: EventHandler + Send + Sync + 'static> ShardQueuer<H> { fn start(&mut self, shard_id: ShardId, shard_total: ShardId) -> Result<()> { let shard_info = [shard_id.0, shard_total.0]; - let shard = Shard::new(self.ws_url.clone(), self.token.clone(), shard_info)?; + let shard = Shard::new( + Arc::clone(&self.ws_url), + Arc::clone(&self.token), + shard_info, + )?; let locked = Arc::new(Mutex::new(shard)); let mut runner = feature_framework! {{ ShardRunner::new( - locked.clone(), + Arc::clone(&locked), self.manager_tx.clone(), - self.framework.clone(), - self.data.clone(), - self.event_handler.clone(), + Arc::clone(&self.framework), + Arc::clone(&self.data), + Arc::clone(&self.event_handler), self.threadpool.clone(), ) } else { diff --git a/src/client/bridge/gateway/shard_runner.rs b/src/client/bridge/gateway/shard_runner.rs index 53d4b80..b14e48b 100644 --- a/src/client/bridge/gateway/shard_runner.rs +++ b/src/client/bridge/gateway/shard_runner.rs @@ -110,12 +110,12 @@ impl<H: EventHandler + Send + Sync + 'static> ShardRunner<H> { let (event, successful) = self.recv_event(); if let Some(event) = event { - let data = self.data.clone(); - let event_handler = self.event_handler.clone(); - let shard = self.shard.clone(); + let data = Arc::clone(&self.data); + let event_handler = Arc::clone(&self.event_handler); + let shard = Arc::clone(&self.shard); feature_framework! {{ - let framework = self.framework.clone(); + let framework = Arc::clone(&self.framework); self.threadpool.execute(|| { dispatch( diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs index aec6283..c296b70 100644 --- a/src/client/dispatch.rs +++ b/src/client/dispatch.rs @@ -204,7 +204,7 @@ fn handle_event<H: EventHandler + 'static>(event: Event, let cache = CACHE.read(); if cache.unavailable_guilds.is_empty() { - let context = context(conn.clone(), data.clone()); + let context = context(Arc::clone(&conn), Arc::clone(&data)); let guild_amount = cache .guilds diff --git a/src/client/mod.rs b/src/client/mod.rs index c17e284..6f6b5ba 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -766,16 +766,16 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { shard_data[0], shard_data[1] - shard_data[0] + 1, shard_data[2], - gateway_url.clone(), - self.token.clone(), - self.data.clone(), - self.event_handler.clone(), + Arc::clone(&gateway_url), + Arc::clone(&self.token), + Arc::clone(&self.data), + Arc::clone(&self.event_handler), #[cfg(feature = "framework")] - self.framework.clone(), + Arc::clone(&self.framework), self.threadpool.clone(), ); - self.shard_runners = manager.runners.clone(); + self.shard_runners = Arc::clone(&manager.runners); if let Err(why) = manager.initialize() { error!("Failed to boot a shard: {:?}", why); |