aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 8e13fae..1b0e13d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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);
+ }
}