Size: a a a

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

2020 November 19

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Или сразу обобщая - кастомная prelude.
А на это RFC наверняка и так есть
источник

M

MrSmith in Rust — русскоговорящее сообществo
Mikail Bagishov
Например "заюзать этот трейт во всех модулях моего крейта"
Да ну не, это руками можно через объединяющий крейт какой, все в него а его как ::*
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
MrSmith
Да ну не, это руками можно через объединяющий крейт какой, все в него а его как ::*
use crate::* импортирует только в один модуль
источник

M

MrSmith in Rust — русскоговорящее сообществo
Да основной вопрос в том как убрать прокси типы
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
А я хочу сразу во все уметь импортировать
источник

M

MrSmith in Rust — русскоговорящее сообществo
Да я понял желание
источник

M

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

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
MrSmith
Да основной вопрос в том как убрать прокси типы
Какие-такие прокси-типы и как они относятся к экстеншн-трейтам?
источник

M

MrSmith in Rust — русскоговорящее сообществo
Если ты делаешь библиотеку для карго, к примеру расширить трейт вулкана
источник

r

red75prime in Rust — русскоговорящее сообществo
Mikail Bagishov
Или сразу обобщая - кастомная prelude.
А на это RFC наверняка и так есть
https://github.com/rust-lang/rfcs/pull/890 Закрыт и пока открывать не собираются
источник

M

MrSmith in Rust — русскоговорящее сообществo
Делаешь в ней
struct NeProxyType(TargetType);
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
MrSmith
Если ты делаешь библиотеку для карго, к примеру расширить трейт вулкана
Экстеншт-трейт ты пишешь сам, поэтому типы-обертки не потребуются
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Убрать orphan rule конечно можно, но это может привести к несовместимостям в экосистеме
источник

M

MrSmith in Rust — русскоговорящее сообществo
Я про случай когда мы конкретный тип хотим расширить
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Тогда ты пишешь для него свой собственный экстеншн-трейт, и никакие обертки не нужны
источник

M

MrSmith in Rust — русскоговорящее сообществo
И из библиотеки это будет работать?
источник

M

MrSmith in Rust — русскоговорящее сообществo
Помойму нет
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
MrSmith
И из библиотеки это будет работать?
источник

M

MrSmith in Rust — русскоговорящее сообществo
Нет, у меня конкретный тип, я хочу к нему иметь иммлементацию в другом крейте
источник

M

MrSmith in Rust — русскоговорящее сообществo
Остаётся только прокси тип, но и он не панацея в плане раскрытия имплементации
источник