aquatic_ws: derive Copy on twenty byte structures, avoid clones

This commit is contained in:
Joakim Frostegård 2020-05-12 12:26:49 +02:00
parent e76b54e697
commit 499c04d621
2 changed files with 10 additions and 10 deletions

View file

@ -89,7 +89,7 @@ pub fn handle_announce_requests(
let info_hash = request.info_hash; let info_hash = request.info_hash;
let peer_id = request.peer_id; let peer_id = request.peer_id;
let torrent_data = torrents.entry(info_hash.clone()) let torrent_data = torrents.entry(info_hash)
.or_default(); .or_default();
// If there is already a peer with this peer_id, check that socket // If there is already a peer with this peer_id, check that socket
@ -119,12 +119,12 @@ pub fn handle_announce_requests(
PeerStatus::Leeching => { PeerStatus::Leeching => {
torrent_data.num_leechers += 1; torrent_data.num_leechers += 1;
torrent_data.peers.insert(peer_id.clone(), peer) torrent_data.peers.insert(peer_id, peer)
}, },
PeerStatus::Seeding => { PeerStatus::Seeding => {
torrent_data.num_seeders += 1; torrent_data.num_seeders += 1;
torrent_data.peers.insert(peer_id.clone(), peer) torrent_data.peers.insert(peer_id, peer)
}, },
PeerStatus::Stopped => { PeerStatus::Stopped => {
torrent_data.peers.remove(&peer_id) torrent_data.peers.remove(&peer_id)
@ -159,8 +159,8 @@ pub fn handle_announce_requests(
for (offer, peer) in offers.into_iter().zip(peers){ for (offer, peer) in offers.into_iter().zip(peers){
let middleman_offer = MiddlemanOfferToPeer { let middleman_offer = MiddlemanOfferToPeer {
info_hash: info_hash.clone(), info_hash,
peer_id: peer_id.clone(), peer_id,
offer: offer.offer, offer: offer.offer,
offer_id: offer.offer_id, offer_id: offer.offer_id,
}; };
@ -177,8 +177,8 @@ pub fn handle_announce_requests(
(Some(answer), Some(to_peer_id), Some(offer_id)) => { (Some(answer), Some(to_peer_id), Some(offer_id)) => {
if let Some(to_peer) = torrent_data.peers.get(&to_peer_id){ if let Some(to_peer) = torrent_data.peers.get(&to_peer_id){
let middleman_answer = MiddlemanAnswerToPeer { let middleman_answer = MiddlemanAnswerToPeer {
peer_id: peer_id, peer_id,
info_hash: info_hash.clone(), info_hash,
answer, answer,
offer_id, offer_id,
}; };

View file

@ -6,7 +6,7 @@ mod serde_helpers;
use serde_helpers::*; use serde_helpers::*;
#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)] #[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, Serialize, Deserialize)]
#[serde(transparent)] #[serde(transparent)]
pub struct PeerId( pub struct PeerId(
#[serde( #[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)] #[serde(transparent)]
pub struct InfoHash( pub struct InfoHash(
#[serde( #[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)] #[serde(transparent)]
pub struct OfferId( pub struct OfferId(
#[serde( #[serde(