Как клонировать async_std ::path::PathBuf в версии 0.99.10?

#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();