diff --git a/src/futures/write/buf_writer.rs b/src/futures/write/buf_writer.rs index f3948c6..13f23f1 100644 --- a/src/futures/write/buf_writer.rs +++ b/src/futures/write/buf_writer.rs @@ -193,7 +193,12 @@ impl AsyncBufWrite for BufWriter { } fn produce(self: Pin<&mut Self>, amt: usize) { - *self.project().buffered += amt; + let this = self.project(); + debug_assert!( + *this.buffered + amt <= this.buf.len(), + "produce called with amt exceeding buffer capacity" + ); + *this.buffered += amt; } } diff --git a/src/tokio/write/buf_writer.rs b/src/tokio/write/buf_writer.rs index 620ed85..c56c7e6 100644 --- a/src/tokio/write/buf_writer.rs +++ b/src/tokio/write/buf_writer.rs @@ -193,7 +193,12 @@ impl AsyncBufWrite for BufWriter { } fn produce(self: Pin<&mut Self>, amt: usize) { - *self.project().buffered += amt; + let this = self.project(); + debug_assert!( + *this.buffered + amt <= this.buf.len(), + "produce called with amt exceeding buffer capacity" + ); + *this.buffered += amt; } }