Займитесь проверкой на родительско-дочерних отношениях

У меня есть код ниже, производящий сообщение об ошибке, отмеченное в его комментариях. Мне кажется, я понимаю сообщение: я хочу заимствовать родительский объект два раза: один раз для нахождения его дочернего элемента и один раз в качестве аргумента для дочернего элемента (и изменяемые / неизменяемые слова в ошибке не имеют значения). Я должен доказать этоChild не исчезает при измененииParent, Но я не знаю, как это сделать. Я мог быRc<Child> все, кроме швов, расточительно, поэтому я надеюсь, что добавление нескольких жизней поможет.

struct Parent {
    used: i32,
    child: Child,
}

struct Child {
    dummy: i32,
}

impl Child { 
    fn use_parent(&mut self, parent: &mut Parent) {
        // use both child and parent
        parent.used += self.dummy;
        self.dummy += 1;
    }
}
fn main() {
    let parent = Parent {
        used: 0,
        child: Child {
            dummy: 1
        }
    };
    //Error: cannot borrow immutable local variable `parent` as mutable
    parent.child.use_parent(&mut parent);
}

Ответы на вопрос(2)

Ваш ответ на вопрос