Вот простой код:
struct MyStruct {
    ...
}
impl MyStruct {
    fn foo(&mut self) {
        ...
        self.bar();
        ...
    }
    fn bar(&mut self) {
        ...
    }
}
Он не собирается, потому что cannot borrow `*self` as mutable more than once at a time.
Я не хочу писать километровые функции и хочу декомпозировать метод класса на несколько подметодов, которые друг-друга вызывают, каждый из которых можно комфортно редактировать. Меня даже устроит, если эти вспомогательные методы будут private, если Rust иначе не может доказать корректность. По факту я просто хочу разбить функцию на несколько частей. При этом дробить сам класс на несколько классов я не хочу, так как оба метода работают над одними и теми же данными.
Как это делается в Rust?



