nd_vector 0.1.0

[WIP] Lengthen! Shrink! Iterate! Scale! Twist and turn to your imagination along any dimension on a vector!
Documentation
use std::default::Default;
use crate::VectorGrid;


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

    fn _insert_column(&mut self, at_x: usize) {
        self.width = self.width.saturating_add(1);
        let mut i = at_x;
        while i < self.items.len() {
            self.items.insert(i, Default::default());
            i += self.width.get()
        }
    }

    pub fn extend_left(&mut self, amount: usize) {

        let mut i = 0;
        self.width = self.width.saturating_add(amount);
        while i < self.items.len() {
            self.items
                .splice(i..i, vec![Default::default(); amount]);
            i += self.width.get();
        }
    }

    pub fn extend_right(&mut self, amount: usize) {

        let mut i = self.width.get();
        self.width = self.width.saturating_add(amount);
        while i < self.items.len() {
            self.items
                .splice(i..i, vec![Default::default(); amount]);
            i += self.width.get();
        }
    }

    pub fn extend_bottom(&mut self, amount: usize) {
        self.items.splice(0..0, vec![Default::default(); amount * self.width.get()]);
    }

    pub fn extend(&mut self, amount: usize) {
        self.items.extend(vec![Default::default(); amount])
    }
}