Size: a a a

2020 December 26

АК

Александр Караев... in Rust Beginners
я его вручную пропишу
источник

K

Kitsu in Rust Beginners
Александр Караев
Ладно, пойдём дальше.
Есть баунды, которые позволят проверить наличие T::new() с определенной сигнатурой?
делай свой трейт или юзай T: Default
источник

TK

Traveller Kolsky in Rust Beginners
Тогда, как вариант, отдельные имплементации сделай своего New-трейта для типов из стд либы и для всех имплементоров From<()>
источник

K

Kitsu in Rust Beginners
но очевидно это никак не ограничит от использования не-zst типов
источник

АК

Александр Караев... in Rust Beginners
решилось через добавление Default нужным юнит-типам и навешивание соответствующего баунда на трейт
источник

АК

Александр Караев... in Rust Beginners
спасибо всем
источник

K

Kitsu in Rust Beginners
Kitsu
вообще кажется через трейт баунды тоже должно получится, сейчас попробую накидать
Не, увы, даже с конст дженериками не работает
источник

DN

Dima N1ght in Rust Beginners
Народ, у меня есть ссылка на массив , назовём её array_ref, если я её дереференсю через звёздочку: *array_ref - это ведь не может быть потенциальным UB или может?
источник

a

antuan in Rust Beginners
Пилю проектик, который зависит от другого проектика. Оба лежат в гитхабе, но бывают ситуации, когда нужно использовать локальную версию зависимости.
Можно как-то организовать все так, что если я передаю,  примеру, в cargo build флажок --local, то будет браться локальная версия, а если нет - с гитхаба?
источник

a

antuan in Rust Beginners
Предвидя совет - держать в dependencies две версии, одна их которых закомменчена, не очень нравится :)
источник

K

Kitsu in Rust Beginners
Dima N1ght
Народ, у меня есть ссылка на массив , назовём её array_ref, если я её дереференсю через звёздочку: *array_ref - это ведь не может быть потенциальным UB или может?
В такой формулировке вроде как нет.
Но мне недавно в зулипе отвечали, что ссылка может ссылаться на неинициализированную память и уб только при дерефе.
источник

a

antuan in Rust Beginners
antuan
Пилю проектик, который зависит от другого проектика. Оба лежат в гитхабе, но бывают ситуации, когда нужно использовать локальную версию зависимости.
Можно как-то организовать все так, что если я передаю,  примеру, в cargo build флажок --local, то будет браться локальная версия, а если нет - с гитхаба?
Карго бук говорит, что комбинировать path и git нельзя... мб что-то хитрое можно сделать в build.rs?
источник

/

/bin/cat in Rust Beginners
Может быть workspaces?
источник

/

/bin/cat in Rust Beginners
Крейт a использует только path, крейт b только git
источник

a

antuan in Rust Beginners
🤔
источник

DN

Dima N1ght in Rust Beginners
Kitsu
В такой формулировке вроде как нет.
Но мне недавно в зулипе отвечали, что ссылка может ссылаться на неинициализированную память и уб только при дерефе.
Но компилятор же проверяет лайфтаймы ссылок и не даст дереферить висячие ссылки? Или есть исключения?
источник

K

Kitsu in Rust Beginners
Dima N1ght
Но компилятор же проверяет лайфтаймы ссылок и не даст дереферить висячие ссылки? Или есть исключения?
всегда можно сделать некорректную ссылку чз unsafe
источник

DN

Dima N1ght in Rust Beginners
Kitsu
всегда можно сделать некорректную ссылку чз unsafe
Ну про unsafe не говорю :)
источник

a

antuan in Rust Beginners
/bin/cat
Крейт a использует только path, крейт b только git
a и b это один и тот же крейт. И a, и b должны использовать c. Но в одном случае path, в другом - git.
И как воркспейсы синкать?
источник

K

Kitsu in Rust Beginners
Dima N1ght
Ну про unsafe не говорю :)
а, ну тогда нет unsafe = нет уб
в контексте сообщеньки выше — нельзя создать "невалидные" ссылки, в т.ч. на неинициализированную память без ансейфа
источник