With this crate, you can conveniently chip pieces off a [slice] or [str] to use elsewhere.
Example
use ;
let mut text = "abcdefg";
assert_eq!;
assert_eq!;
let mut drain = text.drain;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
drop;
//TODO: Why isn't the mutable borrow released here?
//assert_eq!(text, "d");