orx-split-vec 3.23.0

An efficient dynamic capacity vector with pinned element guarantees.
Documentation
use orx_split_vec::*;

#[test]
fn iter_over_range() {
    let vec = SplitVec::<_, Doubling>::from_iter([0, 1, 2, 3, 4, 5, 6].into_iter());
    let con_vec = vec.into_concurrent();

    unsafe {
        let vec: Vec<_> = con_vec.iter_over_range(..7).copied().collect();
        assert_eq!(vec, &[0, 1, 2, 3, 4, 5, 6]);

        let vec: Vec<_> = con_vec.iter_over_range(..4).copied().collect();
        assert_eq!(vec, &[0, 1, 2, 3]);

        let vec: Vec<_> = con_vec.iter_over_range(1..7).copied().collect();
        assert_eq!(vec, &[1, 2, 3, 4, 5, 6]);

        let vec: Vec<_> = con_vec.iter_over_range(1..4).copied().collect();
        assert_eq!(vec, &[1, 2, 3]);

        let vec: Vec<_> = con_vec.iter_over_range(4..4).copied().collect();
        assert_eq!(vec, &[]);

        let vec: Vec<_> = con_vec.iter_over_range(4..3).copied().collect();
        assert_eq!(vec, &[]);

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