#rust
#Ржавчина
Вопрос:
У меня есть сценарий, в котором я хочу сохранить значение a PathBuf
в двух разных коллекциях, в a HashSet<PathBuf>
и как поле в векторе структур Vec<Contract>
( Contract
это пользовательская структура, определенная в моем проекте).
Я просмотрел документы, но не смог найти функциональность для клонирования PathBuf
.
Я знаю, что существуют альтернативные решения, такие как преобразование PathBuf
в a String
или генерация уникального хэша для PathBuf
, но я бы предпочел использовать тот же тип.
Возможно ли клонирование PathBuf
?
Обновление: как указал @vallenting в комментариях, я просматривал старую версию PathBuf
. Доступно в версии v1.8.0 и выше clone
.
Комментарии:
1. Есть ли какая-то особая причина, по которой вы используете
v0.99.10
? ПотомуClone
что есть ли вv1.8.0
2. Никакой другой причины, кроме той, к которой привел меня Google. Спасибо за ваше замечание!
3. Я также только что впервые заметил кнопку «Перейти к последней версии».
Ответ №1:
В v0.99.10
вы можете использовать to_path_buf()
.
let p = PathBuf::from("...");
let p_clone = p.to_path_buf();
Тем не менее, v1.8.0
вы можете использовать clone()
, как и следовало ожидать.
let p = PathBuf::from("...");
let p_clone = p.clone();