pub unsafe trait BinTreeContext { type NodeRef: Sized; fn getParent(&self, node: Self::NodeRef) -> Option; fn getLeftChild(&self, node: Self::NodeRef) -> Option; fn getRightChild(&self, node: Self::NodeRef) -> Option; fn setParent(&mut self, node: Self::NodeRef, newParent: Option); fn setLeftChild(&mut self, node: Self::NodeRef, newChild: Option); fn setRightChild(&mut self, node: Self::NodeRef, newChild: Option); }