use std::mem; #[derive(Clone)] pub struct Node { pub key: K, pub value: V, pub left: Option>>, pub right: Option>>, } impl Node { pub fn new(k: K, v: V, l: Option>>, r: Option>>) -> Box> { Box::new(Node{ key: k, value: v, left: l, right: r }) } #[inline(always)] pub fn pop_left(&mut self) -> Option>> { mem::replace(&mut self.left, None) } #[inline(always)] pub fn pop_right(&mut self) -> Option>> { mem::replace(&mut self.right, None) } }