Size: a a a

Rust — русскоговорящее сообществo

2020 November 04

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
У меня есть два &Path, и я хочу получить их наибольшего общего предка (к примеру, /a/b/c и /a/b/d/e должны дать /a/b)
Для путей, которые не имеют общего предка (как C:\dir и D:\dir) я хочу получить корень левого пути (C:\)
Интуитивный способ — итерироваться по .components(), а потом собрать из них обратно &Path/PathBuf, но как раз способа сделать это (или срезать Path до первых N компонентов) я не вижу.
источник

VK

Vasily Kondratyev in Rust — русскоговорящее сообществo
так это известный алгоритм longest common prefix
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Vasily Kondratyev
так это известный алгоритм longest common prefix
Мне нужен не префикс строки, а префикс пути
И для Path неудобная апишка, которая не позволяет получать любой срез компонентов
источник

VK

Vasily Kondratyev in Rust — русскоговорящее сообществo
ну, значит, преобразовать в более удобную структуру, а потом обратно
источник

ИЛ

Иван Лещенко... in Rust — русскоговорящее сообществo
Emmanuel Goldstein
У меня есть два &Path, и я хочу получить их наибольшего общего предка (к примеру, /a/b/c и /a/b/d/e должны дать /a/b)
Для путей, которые не имеют общего предка (как C:\dir и D:\dir) я хочу получить корень левого пути (C:\)
Интуитивный способ — итерироваться по .components(), а потом собрать из них обратно &Path/PathBuf, но как раз способа сделать это (или срезать Path до первых N компонентов) я не вижу.
источник

IL

Ilya Lakhin in Rust — русскоговорящее сообществo
То есть, я правильно понимаю, что я не могу сделать Default для моего публичного типа, чтобы этот Default был доступен только внутри крейта?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Ilya Lakhin
То есть, я правильно понимаю, что я не могу сделать Default для моего публичного типа, чтобы этот Default был доступен только внутри крейта?
Да
источник

SL

S. L. in Rust — русскоговорящее сообществo
всем привет, у меня несколько вопросов. Во-первых что означает "владеющие ресурсами"? Во-вторых, разве здесь не должна быть ошибка, ведь х очищается после присваивания y
источник

p

polunin.ai in Rust — русскоговорящее сообществo
У x тип i32, который Copy
источник

IL

Ilya Lakhin in Rust — русскоговорящее сообществo
S. L.
всем привет, у меня несколько вопросов. Во-первых что означает "владеющие ресурсами"? Во-вторых, разве здесь не должна быть ошибка, ведь х очищается после присваивания y
Он туда копируется, так как для целых числе заимплеменчен Copy по умолчанию
источник

MP

Mag Pie in Rust — русскоговорящее сообществo
Для Copy типов не работает move semantics?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Mag Pie
Для Copy типов не работает move semantics?
Copy-типы не исчезают, когда муваются, да
источник

SL

S. L. in Rust — русскоговорящее сообществo
вот, тогда хочу более подробно узнать про то, что такое move и copy. Это интерфейсы, в которых описано то, как будут вести себя объекты при присваивании?
источник

MP

Mag Pie in Rust — русскоговорящее сообществo
источник

p

polunin.ai in Rust — русскоговорящее сообществo
S. L.
вот, тогда хочу более подробно узнать про то, что такое move и copy. Это интерфейсы, в которых описано то, как будут вести себя объекты при присваивании?
По умолчанию типы муваются. Если реализован трейт Copy, то копируются.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Mag Pie
Для Copy типов не работает move semantics?
Да
источник

SL

S. L. in Rust — русскоговорящее сообществo
polunin.ai
По умолчанию типы муваются. Если реализован трейт Copy, то копируются.
муваются = удаляются из памяти при присваивании?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
При этом Copy несовместим с Drop — если тип что-то делает в деструкторе, его нельзя просто так копировать
источник

ИЛ

Иван Лещенко... in Rust — русскоговорящее сообществo
S. L.
муваются = удаляются из памяти при присваивании?
Нет
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
S. L.
муваются = удаляются из памяти при присваивании?
муваются = передают владение при присваивании
источник