use core::ops::{Index, IndexMut};
pub use crate::vector::Vector;
impl<T> Index<usize> for Vector<T> {
type Output = T;
#[inline]
fn index<'a>(&'a self, index: usize ) -> &'a T {
&self.vec[ index ]
}
}
impl<T> IndexMut<usize> for Vector<T> {
#[inline]
fn index_mut(&mut self, index: usize ) -> &mut T {
&mut self.vec[ index ]
}
}
impl<T> Vector<T> {
#[inline]
pub fn clear(&mut self) {
self.vec.clear();
}
#[inline]
pub fn swap(&mut self, i: usize, j: usize) {
self.vec.swap( i, j );
}
#[inline]
pub fn push(&mut self, elem: T ) {
self.vec.push( elem );
}
#[inline]
pub fn push_front(&mut self, elem: T ) {
self.vec.insert( 0, elem );
}
#[inline]
pub fn insert(&mut self, pos: usize, new_elem: T ) {
self.vec.insert( pos, new_elem );
}
#[inline]
pub fn pop(&mut self) -> T {
let result = self.vec.pop();
result.unwrap()
}
}