Как изменить данные завернутые в Box, который завернут в Option?
Дано дерево узлов (Nodes), каждый из которых содержит (точнее может содержать) два потомка. Каждый узел содержит ссылку на родительский узел. В методе
set_left
я хочу установить ссылку на родительский объект. Как мне это сделать? Желательно не просто код, а детальное пояснение (вам пишет начинающий).
pub struct Node<'a> {
parent: Option<&'a Node<'a>>,
data: u32,
pub left: Option<Box<Node<'a>>>,
pub right: Option<Box<Node<'a>>>
}
impl<'a> Node<'a> {
pub fn new(data: u32) -> Node<'a> {
Node {
parent: None,
data,
left: None,
right: None,
}
}
pub fn set_left(&mut self, child: Option<Box<Node<'a>>>) {
self.left = child;
if self.left.is_some() {
self.left.parent = ???
}
}
}