1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use num_traits::one;
use crate::LinkedList;
use crate::Num;
pub trait AbsoluteLinkedList<T: Num>: LinkedList<T> {
fn get_first(&self) -> T;
fn get_last(&self) -> T;
fn get_size(&self) -> T;
fn set_first(&mut self, element: T);
fn set_last(&mut self, element: T);
fn set_size(&mut self, size: T);
fn inc_size(&mut self) {
self.set_size(self.get_size() + one())
}
fn dec_size(&mut self) {
self.set_size(self.get_size() - one())
}
}