Я пытаюсь создать изменяемую структуру B
, которая хранит экземпляры другой структуры A
, которые содержат ссылки на B
. Я хочу такую реализацию, чтобы любая мутация, сделанная с оригинальным B
, распространялась на ссылки, хранящиеся в A
s.
Однако во время мутации я должен проверить поле из B
экземпляр обернут в A
экземпляр, тем самым нарушая правило «один изменяемый или много неизменяемый». Мне нужно заимствовать неизменно, в то время как заимствовано заимствовано, но неизменный заем является внутренним для мутирующей функции и не переживает ее объема. с:
thread 'main' panicked at 'already mutably borrowed: BorrowError'
Можно ли выполнить эти требования, используя только Rc<RefCell<B>>
? Если нет, я должен погрузиться в unsafe
код?