diff --git a/src/listhead.rs b/src/listhead.rs index b7a2c2b..6ddd630 100644 --- a/src/listhead.rs +++ b/src/listhead.rs @@ -14,19 +14,7 @@ pub struct ListHead { impl ListHead { - pub fn new_head() -> Rc::> { - let this = Rc::new(RefCell::new(ListHead{ - prev: Default::default(), - next: Default::default(), - data: Default::default(), - _self_wp: Default::default(), - })); - this.borrow_mut()._self_wp = Rc::downgrade(&this); - this.borrow_mut().init(); - return this; - } - - pub fn new_node(data: Weak::>) -> Rc::> { + fn new(data: Weak::>) -> Rc::> { let this = Rc::new(RefCell::new(ListHead{ prev: Default::default(), next: Default::default(), @@ -38,6 +26,14 @@ impl ListHead { return this; } + pub fn new_head() -> Rc::> { + return Self::new(Default::default()); + } + + pub fn new_node(data: Weak::>) -> Rc::> { + return Self::new(data); + } + fn init(&mut self) { self.prev = Rc::downgrade(&self.shared_from_self()); self.next = Rc::downgrade(&self.shared_from_self());