История изменений
Исправление KivApple, (текущая версия) :
Тут нет блокировки самого элемента для дальнейшей работы после разблокировки HashMap. Вероятно, у тебя элементы иммутабельные, а я хочу мутабельные.
Если просто заменить в моём коде Box на Arc и клонировать его перед созданием ItemRef, ошибка никуда не исчезает. Сохранить Arc внутрь структуры (чтобы Rust понимал, что объект точно будет жить, пока жив ItemRef) я не могу, потому что после блокировки Mutex элемента, Arc, в котором он лежит, становится borrowed и его уже нельзя положить в конструируемый ItemRef.
Исправление KivApple, :
Тут нет блокировки самого элемента для дальнейшей работы после разблокировки HashMap.
Если просто заменить в моём коде Box на Arc и клонировать его перед созданием ItemRef, ошибка никуда не исчезает. Сохранить Arc внутрь структуры (чтобы Rust понимал, что объект точно будет жить, пока жив ItemRef) я не могу, потому что после блокировки Mutex элемента, Arc, в котором он лежит, становится borrowed и его уже нельзя положить в конструируемый ItemRef.
Исходная версия KivApple, :
Тут нет блокировки самого элемента для дальнейшей работы после разблокировки HashMap.
Если просто заменить Box на Arc и клонировать его перед созданием ItemRef, ошибка никуда не исчезает. Сохранить Arc внутрь структуры (чтобы Rust понимал, что объект точно будет жить, пока жив ItemRef) я не могу, потому что после блокировки Mutex элемента, Arc, в котором он лежит, становится borrowed и его уже нельзя положить в конструируемый ItemRef.