fill 0.1.1

Provides the Fill trait, an alternative to Extend for finite containers
Documentation
use fill::Fill;

#[test]
fn vec() {
    let mut vec = Vec::with_capacity(10);
    let tail = vec.fill_and_keep_tail(0..20);
    assert_eq!(vec.len(), 10);
    assert_eq!(vec.capacity(), 10);
    assert_eq!(tail.len(), 10);

    for _ in 0..5 { let _ = vec.pop(); }
    let tail = vec.fill_and_keep_tail(tail);
    assert_eq!(vec.len(), 10);
    assert_eq!(vec.capacity(), 10);
    assert_eq!(tail.len(), 5);

    vec.truncate(0);
    let tail = vec.fill_and_keep_tail(tail);
    assert_eq!(vec.len(), 5);
    assert_eq!(vec.capacity(), 10);
    assert_eq!(tail.len(), 0);
}


#[test]
fn vec_deque() {
    use std::collections::VecDeque;
    let mut queue = VecDeque::with_capacity(10);
    let tail = queue.fill_and_keep_tail(0..20);
    assert_eq!(queue.len(), queue.capacity());
    assert_eq!(tail.len(), 20 - queue.len());

}