Преобразование коллекции ссылок в ссылку на коллекцию принадлежащих значений

#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 , но было бы проще предложить подходящее решение, если бы мы могли видеть структуру кода, в которую вы пытаетесь это вписать.