nd_vector 0.1.0

[WIP] Lengthen! Shrink! Iterate! Scale! Twist and turn to your imagination along any dimension on a vector!
Documentation
use crate::{usage_types::coordinates::Coordinate, VectorGrid};

impl<ItemType: Clone> VectorGrid<ItemType> {
    pub fn stamp(&mut self, stamp_grid: &VectorGrid<ItemType>, at: Coordinate) {
        for (i, stamp_item) in stamp_grid.items.iter().enumerate() {
            let mut stamp_coordinate = stamp_grid.get_index_coordinate(i);
            println!("Stamp coordinate at {} + {}", at, stamp_coordinate);
            stamp_coordinate.add(&at);
            self.set_item_if_contained(stamp_coordinate, stamp_item.clone())
        }
    }
}

impl<ItemType: Clone + Default> VectorGrid<ItemType> {

    pub fn stamp_with_extend(&mut self, stamp_grid: &VectorGrid<ItemType>, mut at: Coordinate) {
        self.scale_to_encompace(&mut at);
        let mut corner: Coordinate = Coordinate::new(stamp_grid.defined_shape_isize()).into();
        corner.add(&at);
        self.scale_to_encompace(&mut corner);
        let mut end_coordinate: Coordinate = stamp_grid.get_index_coordinate(stamp_grid.items.len()).into();
        end_coordinate.add(&at);
        println!("End coordinate: {} + {} = {}", stamp_grid.get_index_coordinate(stamp_grid.items.len()), at, end_coordinate);
        self.scale_to_encompace(&mut end_coordinate);
        self.stamp(stamp_grid, at.into());
    }
}