platform_trees/lists/
absolute_linked_list.rs1use crate::{LinkType, LinkedList};
2
3pub trait AbsoluteLinkedList<T: LinkType>: LinkedList<T> {
4 fn get_first(&self) -> T;
5 fn get_last(&self) -> T;
6 fn get_size(&self) -> T;
7
8 fn set_first(&mut self, element: T);
9 fn set_last(&mut self, element: T);
10 fn set_size(&mut self, size: T);
11
12 fn inc_size(&mut self) {
13 self.set_size(self.get_size() + T::funty(1));
14 }
15 fn dec_size(&mut self) {
16 self.set_size(self.get_size() - T::funty(1));
17 }
18}