1
0
mirror of https://github.com/fafhrd91/actix-web synced 2025-06-25 06:39:22 +02:00

use mem::take where possible (#1507)

This commit is contained in:
Rob Ede
2020-05-17 02:54:42 +01:00
committed by GitHub
parent 201090d7a2
commit f3b0233477
10 changed files with 20 additions and 32 deletions

View File

@ -189,7 +189,7 @@ impl MessageBody for Body {
if len == 0 {
Poll::Ready(None)
} else {
Poll::Ready(Some(Ok(mem::replace(bin, Bytes::new()))))
Poll::Ready(Some(Ok(mem::take(bin))))
}
}
Body::Message(ref mut body) => Pin::new(body.as_mut()).poll_next(cx),
@ -307,7 +307,7 @@ impl MessageBody for Bytes {
if self.is_empty() {
Poll::Ready(None)
} else {
Poll::Ready(Some(Ok(mem::replace(self.get_mut(), Bytes::new()))))
Poll::Ready(Some(Ok(mem::take(self.get_mut()))))
}
}
}
@ -324,9 +324,7 @@ impl MessageBody for BytesMut {
if self.is_empty() {
Poll::Ready(None)
} else {
Poll::Ready(Some(Ok(
mem::replace(self.get_mut(), BytesMut::new()).freeze()
)))
Poll::Ready(Some(Ok(mem::take(self.get_mut()).freeze())))
}
}
}
@ -344,7 +342,7 @@ impl MessageBody for &'static str {
Poll::Ready(None)
} else {
Poll::Ready(Some(Ok(Bytes::from_static(
mem::replace(self.get_mut(), "").as_ref(),
mem::take(self.get_mut()).as_ref(),
))))
}
}
@ -362,10 +360,7 @@ impl MessageBody for Vec<u8> {
if self.is_empty() {
Poll::Ready(None)
} else {
Poll::Ready(Some(Ok(Bytes::from(mem::replace(
self.get_mut(),
Vec::new(),
)))))
Poll::Ready(Some(Ok(Bytes::from(mem::take(self.get_mut())))))
}
}
}
@ -383,7 +378,7 @@ impl MessageBody for String {
Poll::Ready(None)
} else {
Poll::Ready(Some(Ok(Bytes::from(
mem::replace(self.get_mut(), String::new()).into_bytes(),
mem::take(self.get_mut()).into_bytes(),
))))
}
}

View File

@ -1,5 +1,5 @@
use std::collections::HashSet;
use std::mem::replace;
use std::mem;
use time::{Duration, OffsetDateTime};
@ -273,7 +273,7 @@ impl CookieJar {
)]
pub fn clear(&mut self) {
self.delta_cookies.clear();
for delta in replace(&mut self.original_cookies, HashSet::new()) {
for delta in mem::take(&mut self.original_cookies) {
self.remove(delta.cookie);
}
}

View File

@ -106,7 +106,7 @@ impl<B: MessageBody> MessageBody for EncoderBody<B> {
if b.is_empty() {
Poll::Ready(None)
} else {
Poll::Ready(Some(Ok(std::mem::replace(b, Bytes::new()))))
Poll::Ready(Some(Ok(std::mem::take(b))))
}
}
EncoderBody::Stream(b) => b.poll_next(cx),

View File

@ -1,6 +1,3 @@
// Because MSRV is 1.39.0.
#![allow(clippy::mem_replace_with_default)]
use std::collections::VecDeque;
use std::future::Future;
use std::pin::Pin;
@ -795,13 +792,10 @@ where
let inner_p = inner.as_mut().project();
let mut parts = FramedParts::with_read_buf(
inner_p.io.take().unwrap(),
std::mem::replace(inner_p.codec, Codec::default()),
std::mem::replace(inner_p.read_buf, BytesMut::default()),
);
parts.write_buf = std::mem::replace(
inner_p.write_buf,
BytesMut::default(),
std::mem::take(inner_p.codec),
std::mem::take(inner_p.read_buf),
);
parts.write_buf = std::mem::take(inner_p.write_buf);
let framed = Framed::from_parts(parts);
let upgrade =
inner_p.upgrade.take().unwrap().call((req, framed));