Merge pull request #3 from chifflier/consume-noshift01

Add consume_noshift (consume data without moving it)
This commit is contained in:
Geoffroy Couprie 2019-06-28 14:53:42 +02:00 committed by GitHub
commit a3cd1707ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 0 deletions

View File

@ -140,6 +140,16 @@ impl Buffer {
cnt
}
/// advances the position tracker
///
/// This method is similar to `consume()` but will not move data
/// to the beginning of the buffer
pub fn consume_noshift(&mut self, count: usize) -> usize {
let cnt = cmp::min(count, self.available_data());
self.position += cnt;
cnt
}
/// after having written data to the buffer, use this function
/// to indicate how many bytes were written
///
@ -394,4 +404,12 @@ mod tests {
assert_eq!(b.available_data(), 3);
println!("{:?}", b.position());
}
#[test]
fn consume_without_shift() {
let mut b = Buffer::with_capacity(10);
let _ = b.write(&b"abcdefgh"[..]);
b.consume_noshift(6);
assert_eq!(b.position(), 6);
}
}