#collections #rust #reference
#Коллекции #Ржавчина #ссылка
Вопрос:
Есть ли какой-либо способ преобразовать коллекцию ссылок в ссылку на коллекцию принадлежащих значений в Rust? Мой конкретный вариант использования — преобразование a BTreeSet<amp;T>
в a amp;BTreeSet<T>
. У меня есть match
, где один arm возвращает синглтон BTreeSet
, созданный из ссылки на значение, а другой возвращает ссылку на существующее BTreeSet
. Я не уверен, возможно ли это без a clone()
, но решил спросить.
Комментарии:
1. Похоже, это проблема XY, поэтому вам лучше указать проблему более высокого уровня, которую вы пытаетесь решить. Для текущего вопроса — вы можете владеть объектами из ссылки только после того, как вы
clone()
это сделаете. Как бы вы себе представляли, что Rust просто предоставит вам право собственности на объект, когда у вас есть только разрешение на просмотр объекта?2. В некоторых ситуациях можно работать с принадлежащими или заимствованными данными, используя инструменты
std::borrow
, но было бы проще предложить подходящее решение, если бы мы могли видеть структуру кода, в которую вы пытаетесь это вписать.