1
This commit is contained in:
parent
a90e99ab62
commit
5df2e5243d
@ -29,11 +29,58 @@ impl<T> ListHead<T> {
|
||||
self.prev.upgrade().unwrap().borrow_mut().next = self.next.clone();
|
||||
}
|
||||
|
||||
pub fn add_tail(&mut self, pnew: &mut ListHead<T>) {
|
||||
let prev = &mut self.prev;
|
||||
unsafe {
|
||||
let next = Weak::from_raw(self);
|
||||
}
|
||||
pub fn add_tail(head: &mut Rc::<RefCell::<ListHead<T>>>,
|
||||
pnew: &mut Rc::<RefCell::<ListHead<T>>>) {
|
||||
let prev = &mut head.borrow_mut().prev;
|
||||
let next = Rc::downgrade(head);
|
||||
|
||||
next.upgrade().unwrap().borrow_mut().prev = Rc::downgrade(pnew);
|
||||
pnew.borrow_mut().next = next;
|
||||
pnew.borrow_mut().prev = prev.clone();
|
||||
prev.upgrade().unwrap().borrow_mut().next = Rc::downgrade(pnew);
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
pub struct ListHead<T> {
|
||||
prev: Weak::<ListHead<T>>,
|
||||
next: Weak::<ListHead<T>>,
|
||||
data: Weak::<RefCell::<T>>,
|
||||
}
|
||||
|
||||
impl<T> ListHead<T> {
|
||||
|
||||
pub fn new() -> RefCell::<Rc::<ListHead<T>>> {
|
||||
let mut this = Rc::new(ListHead{
|
||||
prev: Weak::<ListHead<T>>::new(),
|
||||
next: Weak::<ListHead<T>>::new(),
|
||||
data: Weak::<RefCell::<T>>::new(),
|
||||
});
|
||||
let p = RefCell::new(this);
|
||||
//this.prev = Rc::downgrade(&this).clone();
|
||||
//this.prev = Weak::<ListHead<T>>::new();
|
||||
//this.next = Rc::downgrade(&this);
|
||||
//p.borrow_mut().prev = Rc::downgrade(&p.borrow());
|
||||
p.borrow_mut().prev = Weak::<ListHead<T>>::new();
|
||||
return p;
|
||||
}
|
||||
/*
|
||||
pub fn data(&self) -> &Weak::<RefCell::<T>> {
|
||||
return &self.data;
|
||||
}
|
||||
|
||||
pub fn del(&mut self) {
|
||||
self.next.upgrade().unwrap().borrow_mut().prev = self.prev.clone();
|
||||
self.prev.upgrade().unwrap().borrow_mut().next = self.next.clone();
|
||||
}
|
||||
|
||||
pub fn add_tail(&mut self, pnew: &mut ListHead<T>) {
|
||||
let prev = &mut self.prev;
|
||||
unsafe {
|
||||
let next = Weak::from_raw(&self);
|
||||
//next.upgrade().unwrap().borrow_mut().prev = Weak::from_raw(pnew);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user