Tuntz
ненавижу когда ТГ дублирует сообщения при плохом коннекте
Roma
Денис
Денис
https://play.rust-lang.org/?gist=5980c750b5ef1258c0ba4d056aa2df0e&version=stable&mode=debug
Vladimir
Anonymous
wasm?
Anton
@tapok_satan для t.me/rustlang_ru сделал ГУИ
@savant_d сделал сайт jerk.rs
1:1
Денис
Αλεχ
Денис
М?
Vladimir
Это походу из-за того что вариант энама хендлится как метод
Vladimir
Вообще как-то не консистентно
Αλεχ
бред все равно
Αλεχ
в шарпиках например все просто и понятно - MyGeneric<MyType>.MyStaticField
Денис
ты таки тёплое с мягким не путай)
Αλεχ
с чего это дженерик уехал в конец ваще непонятно
Evgεny
Αλεχ
ну это типа подсказка для типа
Αλεχ
я понимаю даже что так наверное норм
Αλεχ
но выглядит стремно пппц
Αλεχ
потому что выглядит, что <u8> относится к B, а не к H
Evgεny
а когда оно относилось к тому, что справа?
Alex
> Historically speaking, enum in rust isn't scoped by their enum type, hence, we put the turbofish after the enum variant, not after their type.
Денис
угу
Денис
можно ведь сделать use H::{A,B} и потом просто писать B::<u8>
Денис
(как и сделано в prelude для Result и Option)
Evgεny
🤔
Αλεχ
с другой стороны логично
Αλεχ
Result<T,E> потребовал бы специфицировать и то и то
Αλεχ
хотя нам достаточно только либо T, либо E для создания энума
Денис
ну нет
Денис
ему нужно и то и то
Денис
https://play.rust-lang.org/?gist=d20e30f39f06ea5ab5c0ee0993808af5&version=stable&mode=debug
Αλεχ
Денис
> Historically speaking, enum in rust isn't scoped by their enum type, hence, we put the turbofish after the enum variant, not after their type.
Αλεχ
видимо реально ради use H::{A,B}
Αλεχ
ага, я уже понял
Αλεχ
непонятно, почему они не scoped
Alex
я вроде откопал исторические свидетельства
https://github.com/rust-lang/rust/issues/10090
https://github.com/rust-lang/meeting-minutes/blob/master/weekly-meetings/2013-12-10.md#enum-mod
но нужен кто-то поумнее меня, чтобы сделать tl;dr
Vladimir
Видимо в Раст было в начале enum в котором неймсиейс у вариантов был рутовый, а потом добавили хак в для объединения в скоп под неймом энама
Vladimir
Ну а по скольку в данном контексте нейм энама это путь, то в нем не может быть <> ?
Αλεχ
надо предложить RFC чтобы в новой эпохе поменять
Vladimir
Ну там вроде issue висит в расте по этому поводу
Денис
Vladimir
https://github.com/rust-lang/rfcs/issues/2218
Денис
а, то есть вопрос в том, чтобы и так и так можно было
Vladimir
Ну вообще вопрос в том, чтобы одинаково было в типах. А насчёт и так и так, или только консистентный синтаксис, тут уже на усмотрение команды компилятора
Денис
ну ломать Ok::<_, E>(..) как-то не хотелось бы конечно
Αλεχ
Vladimir
Мне кажется было б не плохо еслиб все тайп параметры можно было б писать вообще в конце. Типа Struct<T>::method<X> вызывать как Struct::method::<T, X>
Αλεχ
всегда мжно написать let result: Result<_, E> = Ok(..)
Денис
имхо это редкий кейс
ты так говоришь, только потому что сам не юзал? :) я в либах миллион такого видел
Αλεχ
պլհկ
Менее
Αλεχ
ну может быть чуть менее, но мне консистентность кажется важнее
Денис
ну во-первых менее, а во-вторых речь всё-таки про то, чтобы не сломать всё нафиг
Αλεχ
ну я потому и говорил про эпоху
Vladimir
Ну если у тебя метод состоит из одной строки возврата Ок, то менее
Αλεχ
где можно чутка поломать
Αλεχ
Денис
ну вон там был пример, с чего всё обсуждение и началось: сейчас можно написать просто fn(None::<тип>), и это очень удобно и супер эргономично
Денис
и это всё-таки не "чуток" поломать))
Αλεχ
ну мб и да
Денис
да и функция может дженерик тип принимать, что очень частое явление
Vladimir
Да
Vladimir
Дженерики плохие
Vladimir
А импл блоки ещё хуже
Cat
Дженерики плохие
(вайпнул предыдущее сообщение) ладно, я подумал, это обсуждение для гочата
Денис
а алгебраические типы данных вообще придумал дьявол, отсюда и проблемы
Vladimir
Денис
@Psilon слушай, а вот ты и тут и в гиттере активно сидишь, какой чатик тебе видится более информативным?
Αλεχ
тут реже полезной инфы, зато кейзы сложные. В гиттере больше, но более простых вещей. Плюс обсуждения тут как правило детальнее ибо тупо больше народу сидит
Денис
хм, у меня в целом подобное мнение сложилось
Денис
но я так понимаю здесь народ всякие новые штуки узнаёт не из чатиков, а из подписок/рассылок
Cat
> обсуждения тут как правило детальнее
мне кажется это потому, что мы не хотим какой-то "официальности", и из-за этого прикапываемся к каждой мелочи
(считаю это плюсом, нежели минусом)