Tuntz
https://www.meetup.com/Rust-%D0%B2-%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5/events/251913783/
Tuntz
митап будет в пятницу, 29 июня
Маjко
ненене, спасибо, я не голодный) Просто суть в том что как раз имплицитность этой фигни очень упрощает жизнь вроде как, так что логика там у них немнооооожечко поехала.
Чутка другая история, лайфтаймы там вообще не нужны где они очевидны А тут типа чтоб не путали со структурами. Я не в восторге от нового синтаксиса, время покажет, мб реально упростит чтение чужого кода (в своем то я и так знаю где трейты, а где структуры, да и боксами пользуюсь ну очень редко)
Маjко
Но вообще у меня сложилось впечатление, что в расте Box<Type> в подавляющем большинстве случаев -- это Box<Trait>
Маjко
Я надеялся вообще что запилят в dyn Trait динамик диспатч без аллокации на хипе А это просто кейворд без новых семантик :(
Alena
Чутка другая история, лайфтаймы там вообще не нужны где они очевидны А тут типа чтоб не путали со структурами. Я не в восторге от нового синтаксиса, время покажет, мб реально упростит чтение чужого кода (в своем то я и так знаю где трейты, а где структуры, да и боксами пользуюсь ну очень редко)
Блин, все равно придерживаюсь позиции, что "чтобы не путали" можно и нужно делать через адекватное развитие devtools в этом случае. Посмотрим, естессно. Есть предположение, что глобально ничего не изменится, и все в большинстве своем продолжат писать как писали. Технически-то можно.
Маjко
И вымарают bare trait syntax из истории^W растбука
Marat
ненене, спасибо, я не голодный) Просто суть в том что как раз имплицитность этой фигни очень упрощает жизнь вроде как, так что логика там у них немнооооожечко поехала.
Так все правильно имплицитность лайфтаймов упрощает код, потому что явные лайфтаймы без необходимости не несут никакой полезной информации
Loyd
Слушайте, а этот dyn Trait это просто трейт объект?
Loyd
Какой смысл в новом синтаксисе и что это упрощает?
Tuntz
чтобы не путали понятия
Маjко
Качественно вбросил
Tuntz
типаж как тип
Tuntz
и объект с динамической диспетчеризацией по типажу
Loyd
А кто путает?
Tuntz
раст не ограничен расточатиками
Nikita
А кто путает?
Тебе имена?
Loyd
Мне интересно, кто не может в чтение растбука
Loyd
Что за глупости из-за которых нужно ещё одно, сука, ключевое слово
Маjко
> Additionally, a tweak to the way Cargo deals with targets has landed. Cargo will attempt to automatically discover tests, examples, and binaries within your project. However, sometimes explicit configuration is needed. But the initial implementation had a problem: let’s say that you have two examples, and Cargo is discovering them both. You want to tweak one of them, and so you add a [[example]] to your Cargo.toml to configure its settings. Cargo currently sees that you’ve set one explicitly, and therefore, doesn’t attempt to do any autodetection for the others. That’s quite surprising. Ахахаха, выливать с стейбл карго с недопилиной фичей. Красавцы. Хорошо что хоть не компилятор
Маjко
Как ты в коде отличишь их?
Маjко
Loyd
При чем тут растбук?
Притом, что там описание трейтобжектов нормальное.
Loyd
Поинт же в том,что "люди путают"
კაცი
как ты узнаешь, что это трейт?
Roma
или так просто вбросы?
Loyd
Побежался
Tuntz
Притом, что там описание трейтобжектов нормальное.
"typeof(null) == "object", но это нормально потому что описано на MDN"
Маjко
Это мне?
fn perimeter(shape: &Shape) -> f32 Это трейтобъект или структура?
Loyd
Не понял, что за наезд. Трейты не могут в местах, где тип ожидается, находится
Маjко
Смотря что Shape
Именно, из сигнатуры или имени типа ты это понять не можешь
Loyd
С точки зрения интерфейса, тебя это волновать не должно
Маjко
ДА ЧТО ТЫ
Loyd
Да ты то
Маjко
Меня как бы волнует че там, если мне нужен перформанс
Nikita
С точки зрения интерфейса, тебя это волновать не должно
Парень, реф на структуру и реф на трейтобжект - это две разные вещи
Tuntz
А это тут причем?
да при том, что не надо косяки языка оправдывать хорошей документацией
Маjко
Так и к аннотациям типов в комментах можно дойти
Loyd
Меня как бы волнует че там, если мне нужен перформанс
Эм. Ты в сигнатуре интерыейс указываешь, а не требования к перформансу, не тупи
Roma
ща бы кодогенератором генерик реализовывать
Loyd
Парень, реф на структуру и реф на трейтобжект - это две разные вещи
"с точки зрения интерфейса". Научись уже читать
Маjко
Эм. Ты в сигнатуре интерыейс указываешь, а не требования к перформансу, не тупи
Я хочу знать во что скомпилируется мой код? И видеть явно где используется динамикдиспатч?
Nikita
Эм. Ты в сигнатуре интерыейс указываешь, а не требования к перформансу, не тупи
А при чем здесь именно сигнатура? Ты читаешь функцию и видишь это, но что это такое ты не понимаешь
Loyd
да при том, что не надо косяки языка оправдывать хорошей документацией
Для меня неочевидно, почему это косяк языка. Разжуешь?
Nikita
Функция не ограничивается сигнатурой
Loyd
Я хочу знать во что скомпилируется мой код? И видеть явно где используется динамикдиспатч?
Тогда тебе надо указывать, как у тебя аргументы передаются: через регистр, через стоек и т.д
Loyd
Иди уж до конца
Маjко
Тогда тебе надо указывать, как у тебя аргументы передаются: через регистр, через стоек и т.д
Это дело LLVM уже, не мешай высокоуровневые вещи с байтоебством
Nikita
Ух, ща ещё полетят предложения писать на асме. И пофиг, что Раст - не настолько низкоуровневый язык, но и не джава
Loyd
А при чем здесь именно сигнатура? Ты читаешь функцию и видишь это, но что это такое ты не понимаешь
Притом, что в отрыве тебе знания о Shape нахуй не сдались. Если ты хочешь работать с аргументом, тебе придется идти и смотреть что такое Shape. В любом случае. Потому что иначе ничего вызвать от него ты не сможешь
Loyd
Потому что вместо интерфейса смотришь про то, как будет диспетчеризация осуществляться
Маjко
https://github.com/rust-lang/rust/issues/44662
Маjко
Кстати интересно
Маjко
Фича еще с 2015 планировалась
Nikita
А вообще, в расте диспетчеризация не входит в сигнатуру?
Loo
Вторая волна обсуждения Дин трэйта?
Cat
чё вы придумываете? хотите &Object ? — пишите &Shape хотите &Trait ? — пишите &Shapable
Nikita
Теперь входит
Вроде и раньше входила, когда impl Trait не было
Маjко
Loyd
Да тут сказочники собрались
Loyd
Что такое Shape они не знают и что вызвать у него можно --- тоже, зато какая диспетчеризация это прям пиздец важно
Nikita
?
У функции с дженериком по трейту и у функции с референсом на трейтобжект были разные сигнатуры же
Nikita
Да и сейчас