array-linked-list 0.2.2

A data structure, which combines the advantages of dynamic arrays and linked lists
Documentation
use array_linked_list::ArrayLinkedList;

fn get_default_array() -> ArrayLinkedList<u8> {
    let mut array = ArrayLinkedList::new();

    array.push_front(1);
    array.push_back(2);
    array.push_front(3);
    array.push_back(4);
    array.push_back(5);

    array
}

#[test]
fn test_values() {
    let array = get_default_array();

    let vec: Vec<_> = array.iter().copied().collect();
    assert_eq!(vec, vec![3, 1, 2, 4, 5]);
}

#[test]
fn test_values_after() {
    let array = get_default_array();

    let vec: Vec<_> = array.iter_after(1).copied().collect();
    assert_eq!(vec, vec![4, 5]);
}

#[test]
fn test_values_before() {
    let array = get_default_array();

    let vec: Vec<_> = array.iter_before(1).copied().collect();
    assert_eq!(vec, vec![3, 1]);
}

#[test]
fn test_into_values() {
    let array = get_default_array();

    let vec: Vec<_> = array.into_iter().collect();
    assert_eq!(vec, vec![3, 1, 2, 4, 5]);
}

#[test]
fn test_indexed() {
    let array = get_default_array();

    let vec: Vec<_> = array.indexed().collect();
    assert_eq!(vec, vec![(2, &3), (0, &1), (1, &2), (3, &4), (4, &5)]);
}

#[test]
fn test_indexed_after() {
    let array = get_default_array();

    let vec: Vec<_> = array.indexed_after(1).collect();
    assert_eq!(vec, vec![(3, &4), (4, &5)]);
}

#[test]
fn test_indexed_before() {
    let array = get_default_array();

    let vec: Vec<_> = array.indexed_before(1).collect();
    assert_eq!(vec, vec![(2, &3), (0, &1)]);
}

#[test]
fn test_into_indexed() {
    let array = get_default_array();

    let vec: Vec<_> = array.into_indexed().collect();
    assert_eq!(vec, vec![(2, 3), (0, 1), (1, 2), (3, 4), (4, 5)]);
}

#[test]
fn test_indices() {
    let array = get_default_array();

    let vec: Vec<_> = array.indices().collect();
    assert_eq!(vec, vec![2, 0, 1, 3, 4]);
}

#[test]
fn test_indices_after() {
    let array = get_default_array();

    let vec: Vec<_> = array.indices_after(1).collect();
    assert_eq!(vec, vec![3, 4]);
}

#[test]
fn test_indices_before() {
    let array = get_default_array();

    let vec: Vec<_> = array.indices_before(1).collect();
    assert_eq!(vec, vec![2, 0]);
}

#[test]
fn test_into_indices() {
    let array = get_default_array();

    let vec: Vec<_> = array.into_indices().collect();
    assert_eq!(vec, vec![2, 0, 1, 3, 4]);
}