From fd51599fa869cdae50af8f7c67ce4c17117cb223 Mon Sep 17 00:00:00 2001 From: Jay Kickliter Date: Fri, 14 Sep 2018 13:13:36 -0700 Subject: [PATCH] Replace replace(..., None) with take() This is strictly for simplicity, since Option::take() is imlemented with replace(). --- src/broadcast_stage.rs | 5 ++--- src/erasure.rs | 2 +- src/window.rs | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/broadcast_stage.rs b/src/broadcast_stage.rs index c2da9086ce..ea13af40ef 100644 --- a/src/broadcast_stage.rs +++ b/src/broadcast_stage.rs @@ -8,7 +8,6 @@ use log::Level; use packet::BlobRecycler; use result::{Error, Result}; use service::Service; -use std::mem; use std::net::UdpSocket; use std::sync::atomic::AtomicUsize; use std::sync::mpsc::RecvTimeoutError; @@ -60,7 +59,7 @@ fn broadcast( for b in &blobs { let ix = b.read().unwrap().get_index().expect("blob index"); let pos = (ix % WINDOW_SIZE) as usize; - if let Some(x) = mem::replace(&mut win[pos].data, None) { + if let Some(x) = win[pos].data.take() { trace!( "{} popped {} at {}", id, @@ -69,7 +68,7 @@ fn broadcast( ); recycler.recycle(x, "broadcast-data"); } - if let Some(x) = mem::replace(&mut win[pos].coding, None) { + if let Some(x) = win[pos].coding.take() { trace!( "{} popped {} at {}", id, diff --git a/src/erasure.rs b/src/erasure.rs index 2512e3b781..aebf41ac66 100644 --- a/src/erasure.rs +++ b/src/erasure.rs @@ -363,7 +363,7 @@ fn is_missing( recycler: &BlobRecycler, c_or_d: &str, ) -> bool { - if let Some(blob) = mem::replace(window_slot, None) { + if let Some(blob) = window_slot.take() { let blob_idx = blob.read().unwrap().get_index().unwrap(); if blob_idx == idx { trace!("recover {}: idx: {} good {}", id, idx, c_or_d); diff --git a/src/window.rs b/src/window.rs index e4ff12f617..b3f61dbad3 100644 --- a/src/window.rs +++ b/src/window.rs @@ -34,7 +34,7 @@ impl WindowSlot { } fn clear_data(&mut self, recycler: &BlobRecycler) { - if let Some(blob) = mem::replace(&mut self.data, None) { + if let Some(blob) = self.data.take() { recycler.recycle(blob, "WindowSlot::clear_data"); } }