Skip to content

Commit

Permalink
Inline some Cursor calls for slices
Browse files Browse the repository at this point in the history
(Partially) brings back rust-lang#33921
  • Loading branch information
petertodd committed May 9, 2019
1 parent e630580 commit b9c4301
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/libstd/io/cursor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -265,13 +265,15 @@ impl<T> BufRead for Cursor<T> where T: AsRef<[u8]> {
}

// Non-resizing write implementation
#[inline]
fn slice_write(pos_mut: &mut u64, slice: &mut [u8], buf: &[u8]) -> io::Result<usize> {
let pos = cmp::min(*pos_mut, slice.len() as u64);
let amt = (&mut slice[(pos as usize)..]).write(buf)?;
*pos_mut += amt as u64;
Ok(amt)
}

#[inline]
fn slice_write_vectored(
pos_mut: &mut u64,
slice: &mut [u8],
Expand Down Expand Up @@ -341,6 +343,7 @@ impl Write for Cursor<&mut [u8]> {
slice_write_vectored(&mut self.pos, self.inner, bufs)
}

#[inline]
fn flush(&mut self) -> io::Result<()> { Ok(()) }
}

Expand All @@ -354,6 +357,7 @@ impl Write for Cursor<&mut Vec<u8>> {
vec_write_vectored(&mut self.pos, self.inner, bufs)
}

#[inline]
fn flush(&mut self) -> io::Result<()> { Ok(()) }
}

Expand All @@ -367,6 +371,7 @@ impl Write for Cursor<Vec<u8>> {
vec_write_vectored(&mut self.pos, &mut self.inner, bufs)
}

#[inline]
fn flush(&mut self) -> io::Result<()> { Ok(()) }
}

Expand All @@ -382,6 +387,7 @@ impl Write for Cursor<Box<[u8]>> {
slice_write_vectored(&mut self.pos, &mut self.inner, bufs)
}

#[inline]
fn flush(&mut self) -> io::Result<()> { Ok(()) }
}

Expand Down

0 comments on commit b9c4301

Please sign in to comment.