use std::rc::Rc; pub struct List { head: Option>>, } pub struct Node { data: T, parent: Option>>, } impl List { pub fn new() -> Self { List { head: None } } pub fn push_front(&self, data: T) -> List { List { head: Some(Rc::new(Node { data: data, parent: self.head.clone(), })), } } pub fn get_data(&self) -> &T { &self.data } }