aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Geoffroy Couprie <geo.couprie@gmail.com>2017-05-08 12:04:49 +0200
committerLibravatar GitHub <noreply@github.com>2017-05-08 12:04:49 +0200
commit88b478e85fe2156e8506c223b5b8c3a35d866ee1 (patch)
tree79ed18c7ba76eb98793dc1c5e39f525fa1324b9b
parent00bab6d45e7dd31a58f760643bf30baaf695c686 (diff)
parente88629085ba51f344ec2a141421d2ce829ba4dc0 (diff)
downloadcircular-88b478e85fe2156e8506c223b5b8c3a35d866ee1.tar.gz
circular-88b478e85fe2156e8506c223b5b8c3a35d866ee1.tar.bz2
circular-88b478e85fe2156e8506c223b5b8c3a35d866ee1.zip
Merge pull request #1 from Freyskeyd/master
Add getter for position
-rw-r--r--src/lib.rs38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/lib.rs b/src/lib.rs
index ecfb057..8025be5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -78,6 +78,29 @@ impl Buffer {
cnt
}
+ /// Get the current position
+ ///
+ /// # Examples
+ /// ```
+ /// use circular::Buffer;
+ /// use std::io::{Read,Write};
+ ///
+ /// let mut output = [0;5];
+ ///
+ /// let mut b = Buffer::with_capacity(10);
+ ///
+ /// let res = b.write(&b"abcdefgh"[..]);
+ ///
+ /// b.read(&mut output);
+ ///
+ /// // Position must be 5
+ /// assert_eq!(b.position(), 5);
+ /// assert_eq!(b.available_data(), 3);
+ /// ```
+ pub fn position(&self) -> usize {
+ self.position
+ }
+
pub fn reset(&mut self) {
self.position = 0;
self.end = 0;
@@ -229,7 +252,7 @@ mod tests {
#[test]
fn delete() {
let mut b = Buffer::with_capacity(10);
- let res = b.write(&b"abcdefgh"[..]);
+ let _ = b.write(&b"abcdefgh"[..]);
assert_eq!(b.available_data(), 8);
assert_eq!(b.available_space(), 2);
@@ -245,7 +268,7 @@ mod tests {
#[test]
fn replace() {
let mut b = Buffer::with_capacity(10);
- let res = b.write(&b"abcdefgh"[..]);
+ let _ = b.write(&b"abcdefgh"[..]);
assert_eq!(b.available_data(), 8);
assert_eq!(b.available_space(), 2);
@@ -267,4 +290,15 @@ mod tests {
assert_eq!(b.available_space(), 2);
assert_eq!(b.data(), &b"ab123Zgh"[..]);
}
+
+ use std::str;
+ #[test]
+ fn set_position() {
+ let mut output = [0;5];
+ let mut b = Buffer::with_capacity(10);
+ let _ = b.write(&b"abcdefgh"[..]);
+ let _ = b.read(&mut output);
+ assert_eq!(b.available_data(), 3);
+ println!("{:?}", b.position());
+ }
}