mirror of
https://github.com/tokio-rs/bytes.git
synced 2026-08-11 00:00:23 +02:00
Add clear method to RingBuf
This commit is contained in:
committed by
Carl Lerche
parent
4ce8b1c2c8
commit
a76dd8ed0e
@@ -91,6 +91,13 @@ impl RingBuf {
|
||||
}
|
||||
}
|
||||
|
||||
/// Resets all internal state to the initial state.
|
||||
pub fn clear(&mut self) {
|
||||
self.pos = 0;
|
||||
self.len = 0;
|
||||
self.mark = Mark::NoMark;
|
||||
}
|
||||
|
||||
/// Returns the number of bytes remaining to read.
|
||||
fn read_remaining(&self) -> usize {
|
||||
self.len
|
||||
|
||||
@@ -120,3 +120,19 @@ fn test_reset_full() {
|
||||
buf.reset();
|
||||
assert_eq!(MutBuf::remaining(&buf), 0);
|
||||
}
|
||||
|
||||
|
||||
#[test]
|
||||
// Test that "RingBuf::clear" does the full reset
|
||||
fn test_clear() {
|
||||
use bytes::traits::{Buf, MutBuf};
|
||||
use std::io::Write;
|
||||
|
||||
let mut buf = RingBuf::new(8);
|
||||
buf.write(&[0; 8]).unwrap();
|
||||
assert_eq!(MutBuf::remaining(&buf), 0);
|
||||
assert_eq!(Buf::remaining(&buf), 8);
|
||||
buf.clear();
|
||||
assert_eq!(MutBuf::remaining(&buf), 8);
|
||||
assert_eq!(Buf::remaining(&buf), 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user