nd_vector 0.1.0

[WIP] Lengthen! Shrink! Iterate! Scale! Twist and turn to your imagination along any dimension on a vector!
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use std::ops::Range;

use crate::VectorGrid;

impl<ItemType: Copy> VectorGrid<ItemType> {
    pub fn get_chunk(&self, chunk_range: Vec<Range<usize>>) -> VectorGrid<ItemType> {
        let chunk_size = chunk_range.iter().map(|range| {range.end - range.start});
        VectorGrid::from_vector(chunk_size.collect(), self.iter_chunk(chunk_range).copied().collect())
    }
}

impl<ItemType> VectorGrid<ItemType> {
    pub fn get_chunk_ref(&self, chunk_range: Vec<Range<usize>>) -> VectorGrid<&ItemType> {
        let chunk_size = chunk_range.iter().map(|range| {range.end - range.start});
        VectorGrid::from_vector(chunk_size.collect(), self.iter_chunk(chunk_range).collect())
    }
}