From feefadde51f15af7c2a1bc9773b6d43e38c7e8e5 Mon Sep 17 00:00:00 2001 From: Fee Fladder Date: Mon, 24 Mar 2025 19:19:12 +0100 Subject: [PATCH 1/2] added docs +doctests to BufRead::Consume --- src/buf/reader.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/buf/reader.rs b/src/buf/reader.rs index 521494958..500b3cfa5 100644 --- a/src/buf/reader.rs +++ b/src/buf/reader.rs @@ -75,6 +75,26 @@ impl io::BufRead for Reader { fn fill_buf(&mut self) -> io::Result<&[u8]> { Ok(self.buf.chunk()) } + /// consume `amt` bytes from the buffer. + /// + /// Calls [`Buf::advance`] internally and will therefore not lead to a logic error. + /// + /// # Examples + /// ```rust + /// use bytes::Buf; + /// use std::io::{Read, BufRead}; + /// + /// let mut buf = b"hello world".reader(); + /// let mut dst = vec![]; + /// + /// // skip b"hello " + /// buf.consume(6); + /// // read b"world" + /// buf.read_to_end(&mut dst).unwrap(); + /// + /// assert_eq!(dst, b"world"); + /// ``` + /// fn consume(&mut self, amt: usize) { self.buf.advance(amt) } From feefadde0953ad2ff0f0e855303ee81bc767c1d0 Mon Sep 17 00:00:00 2001 From: Fee Fladder Date: Tue, 25 Mar 2025 20:11:23 +0100 Subject: [PATCH 2/2] made edge-case behaviour more explicit --- src/buf/reader.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/buf/reader.rs b/src/buf/reader.rs index 500b3cfa5..72e05ace7 100644 --- a/src/buf/reader.rs +++ b/src/buf/reader.rs @@ -77,7 +77,8 @@ impl io::BufRead for Reader { } /// consume `amt` bytes from the buffer. /// - /// Calls [`Buf::advance`] internally and will therefore not lead to a logic error. + /// Calls [`Buf::advance`] internally: If `amt` > `get_ref().remaining()` it + /// may **Panic** or advance to the end of the buf. /// /// # Examples /// ```rust