diff --git a/src/main.rs b/src/main.rs index c0f7872..65b3f39 100644 --- a/src/main.rs +++ b/src/main.rs @@ -29,13 +29,13 @@ impl List { pub fn push(&mut self, elem: T) { let new_node = Node { elem: elem, - next: std::mem::replace(&mut self.head, None), + next: self.head.take(), }; self.head = Some(Box::new(new_node)); } pub fn pop(&mut self) -> Option { - match std::mem::replace(&mut self.head, None) { + match self.head.take() { None => None, Some(node) => { self.head = node.next;