Во, еще бажина раста нашлась. Ну как всегда некорректное поведение borrow checker-а.
match self.cash.do_transaction(resource_id, |resource| {
match resource.cashed {
Some(ref mut cashed_resource) => {
let create = self.resource_heap.logical.create_resource(cashed_resource.data.deref());
closure requires unique access to
self
but
self.cash
is already borrowed
из-за боровинка ОТДЕЛЬНОГО поля
self.cash, причем НЕМУТАБЕЛЬНОГО
и мутабельного бороввинга ОТДЕЛЬНОГО поля self.resource_heap уже мутабельного
ИМХО, именно из-за некорректного, нелогичного поведения борров чеккера, раст никак не может взлететь. Ох, а сделать в расте граф, так вообще застрелиться!