From 499c04d6219fbb87143ae7565be349e5cac2d3fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Tue, 12 May 2020 12:26:49 +0200 Subject: [PATCH] aquatic_ws: derive Copy on twenty byte structures, avoid clones --- aquatic_ws/src/lib/handler.rs | 14 +++++++------- aquatic_ws/src/lib/protocol/mod.rs | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/aquatic_ws/src/lib/handler.rs b/aquatic_ws/src/lib/handler.rs index da00a60..f0529dd 100644 --- a/aquatic_ws/src/lib/handler.rs +++ b/aquatic_ws/src/lib/handler.rs @@ -89,7 +89,7 @@ pub fn handle_announce_requests( let info_hash = request.info_hash; let peer_id = request.peer_id; - let torrent_data = torrents.entry(info_hash.clone()) + let torrent_data = torrents.entry(info_hash) .or_default(); // If there is already a peer with this peer_id, check that socket @@ -119,12 +119,12 @@ pub fn handle_announce_requests( PeerStatus::Leeching => { torrent_data.num_leechers += 1; - torrent_data.peers.insert(peer_id.clone(), peer) + torrent_data.peers.insert(peer_id, peer) }, PeerStatus::Seeding => { torrent_data.num_seeders += 1; - torrent_data.peers.insert(peer_id.clone(), peer) + torrent_data.peers.insert(peer_id, peer) }, PeerStatus::Stopped => { torrent_data.peers.remove(&peer_id) @@ -159,8 +159,8 @@ pub fn handle_announce_requests( for (offer, peer) in offers.into_iter().zip(peers){ let middleman_offer = MiddlemanOfferToPeer { - info_hash: info_hash.clone(), - peer_id: peer_id.clone(), + info_hash, + peer_id, offer: offer.offer, offer_id: offer.offer_id, }; @@ -177,8 +177,8 @@ pub fn handle_announce_requests( (Some(answer), Some(to_peer_id), Some(offer_id)) => { if let Some(to_peer) = torrent_data.peers.get(&to_peer_id){ let middleman_answer = MiddlemanAnswerToPeer { - peer_id: peer_id, - info_hash: info_hash.clone(), + peer_id, + info_hash, answer, offer_id, }; diff --git a/aquatic_ws/src/lib/protocol/mod.rs b/aquatic_ws/src/lib/protocol/mod.rs index 46ce9d8..316d1bd 100644 --- a/aquatic_ws/src/lib/protocol/mod.rs +++ b/aquatic_ws/src/lib/protocol/mod.rs @@ -6,7 +6,7 @@ mod serde_helpers; use serde_helpers::*; -#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, Serialize, Deserialize)] #[serde(transparent)] pub struct PeerId( #[serde( @@ -17,7 +17,7 @@ pub struct PeerId( ); -#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, Serialize, Deserialize)] #[serde(transparent)] pub struct InfoHash( #[serde( @@ -28,7 +28,7 @@ pub struct InfoHash( ); -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[serde(transparent)] pub struct OfferId( #[serde(