CursorVec
Vec container that utilizes "Cursor"
Usage
use *;
let mut vec =
new.with_container;
// Move cursor to next and get cursor's value
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
// Move cursor to prevous and get cursor's value
assert_eq!;
assert_eq!;
assert_eq!;
// Reset cursor
vec.set_cursor;
// Move cursor and tries to get values regardless of cursor success
assert_eq!;
assert_eq!;
// Container with rotating cursor
let mut vec = new
.rotatable
.with_container;
assert_eq!;
// always is not so differnt from non-always variant if rotation is set
assert_eq!;
// Modify container and update cursor
vec.drain;
vec.update_cursor;
// Cursor automatically goes to available index
assert_eq!;
// Modify without update can possibly cause out of range error
vec.drain;
assert_eq!;
vec.update_cursor;
assert_ne!;
vec.set_container;
vec.set_cursor;
assert_eq!;
// Use modify method to auto update cursor
vec.modify;
// Cursor
// |
// vec![2, 4, 6, 8]
assert_eq!;
assert_eq!;
TODO
- Feature : Panickable operation feature rather than bool return.
- This enables easier error handling with cost of possible panicking behaviour