chore: Use IoSlice's Copy impl to clean up some repetitive code (#2875)

As we go into 0.3 we no longer need to support older versions of Rust where
IoSlice did not implement Copy and Clone, so we can more easily initialize the
IoSlice array in net::tcp::stream.

Co-authored-by: Bryan Donlan <[email protected]>
This commit is contained in:
bdonlan
2020-09-24 14:50:10 -07:00
committed by GitHub
co-authored by Bryan Donlan
parent 56acde069f
commit 760ae89401
+1 -67
View File
@@ -762,73 +762,7 @@ impl TcpStream {
static S: &[u8] = &[0];
const MAX_BUFS: usize = 64;
// IoSlice isn't Copy, so we must expand this manually ;_;
let mut slices: [IoSlice<'_>; MAX_BUFS] = [
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
IoSlice::new(S),
];
let mut slices: [IoSlice<'_>; MAX_BUFS] = [IoSlice::new(S); 64];
let cnt = buf.bytes_vectored(&mut slices);
let iovec = <&IoVec>::from(S);