use super::vec_historic::VecHistoric;
pub struct IntoIter<T> {
pub(super) inner: VecHistoric<T>,
}
pub type Iter<'a, T> = std::iter::Chain<std::slice::Iter<'a, T>, std::slice::Iter<'a, T>>;
pub type IterMut<'a, T> = std::iter::Chain<std::slice::IterMut<'a, T>, std::slice::IterMut<'a, T>>;
#[derive(Clone, Debug)]
pub struct RemoveData<T> {
pub indecies: Vec<usize>,
pub values: Vec<T>
}
#[derive(Clone, Debug)]
pub struct MoveData {
pub dest_index: usize,
pub indecies: Vec<usize>,
}
#[derive(Clone, Debug)]
pub struct InsertData {
pub index: usize,
pub amount: usize, }
#[derive(Clone, Debug)]
pub enum Action<T> {
Remove(RemoveData<T>),
Move(MoveData),
Insert(InsertData),
PushBack,
PopBack(T),
PushFront,
PopFront(T),
}