[][src]Crate gnaw

With this crate, you can conveniently chip pieces off a [slice] or str to use elsewhere.

Example

use gnaw::{Drain as _, Pop as _, Unshift as _};

let mut text = "abcdefg";

assert_eq!(text.unshift(), Some('a'));
assert_eq!(text.pop(), Some('g'));

let mut drain = text.drain();
assert_eq!(drain.next(), Some('b'));
assert_eq!(drain.next(), Some('c'));
assert_eq!(drain.next_back(), Some('f'));
assert_eq!(drain.next_back(), Some('e'));
drop(drain);

//TODO: Why isn't the mutable borrow released here?
//assert_eq!(text, "d");

Traits

Drain
Pop
Unshift