io: use Buf::put_bytes in Repeat read impl (#7055)

This commit is contained in:
Paolo Barbolini 2024-12-30 13:44:55 +01:00 committed by GitHub
parent 9d42b977df
commit b3ff911c38
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 5 deletions

View File

@ -91,7 +91,7 @@ tokio-macros = { version = "~2.4.0", path = "../tokio-macros", optional = true }
pin-project-lite = "0.2.11"
# Everything else is optional...
bytes = { version = "1.0.0", optional = true }
bytes = { version = "1.1.0", optional = true }
mio = { version = "1.0.1", optional = true, default-features = false }
parking_lot = { version = "0.12.0", optional = true }

View File

@ -1,3 +1,5 @@
use bytes::BufMut;
use crate::io::util::poll_proceed_and_make_progress;
use crate::io::{AsyncRead, ReadBuf};
@ -56,10 +58,7 @@ impl AsyncRead for Repeat {
) -> Poll<io::Result<()>> {
ready!(crate::trace::trace_leaf(cx));
ready!(poll_proceed_and_make_progress(cx));
// TODO: could be faster, but should we unsafe it?
while buf.remaining() != 0 {
buf.put_slice(&[self.byte]);
}
buf.put_bytes(self.byte, buf.remaining());
Poll::Ready(Ok(()))
}
}