Vladimir
Фьюча ж где-то юзает это в качестве ретурн параметра?
Vladimir
a.or(b) или нет такого?
Loyd
Loyd
https://docs.rs/futures/0.2.1/futures/future/enum.Either.html
Loyd
А, лол. Это таки реекспорт
Loyd
Чёт дока странная: показывается как часть futures, а [src] ведёт на either крейт
Αλεχ
https://github.com/rust-lang/rfcs/issues/2414
Αλεχ
кстати ставьте плюсы
Αλεχ
моя идея про то чтобы impl Trait работал со всеми типами обобщили и сделали реально удобно
Αλεχ
не успел макрос запилить(
Маjко
Маjко
Мне идея с процедурным макросом enumify еравится больше, чем расширение синтаксиса
Αλεχ
так я собирался его писать
Αλεχ
проблема с макросом, что IDE забъет йух на всё, чт овнутри
Αλεχ
а это не очень удобно
պլհկ
idea driven development
Маjко
Ага
Маjко
Пусть инструментарий пилят, а не в язык пихают, ИМХО
Маjко
Один йух поддержка процедурных макросов нужна
Маjко
Но для этого @vlad20012 придется писать интерпретатор раста бгг
Vlad
Что там?
Маjко
С другой стороны там можно и на borrowck забить чуть более чем полностью
Vlad
Vlad
Никто не мешает собрать крейт процедурного макроса и дернуть его из IDE
Маjко
У вас токены полностью совместимы?
Маjко
Я думал, это считается у вас хуевым подходом
Маjко
Тогда можно вообще компилятор просто дергать и не париться со своим парсером)
Vlad
Сейчас есть костылейпрототип, который вообще эпично работает - выдергивает структуру под custom derive, кладет его текст в отдельный файл, собирает вокруг него cargo project со всеми зависимостями и запускает --pretty=expanded
Vlad
Маjко
Денис
Vlad
Αλεχ
https://github.com/Nemo157/impl_sum
Маjко
@vlad20012 а ты на фуллтайме над растоплагином работаешь?
Vlad
Max
https://blog.rust-lang.org/2018/08/02/Rust-1.28.html
Маjко
Да
Зоебись, спасибо intellij
Loyd
Loyd
Ещё одно ключевое слово
Cat
Loyd
become жеж
𝙽𝚒𝚌𝚔
become жеж
ну это один из вариантов, явно не самый удачный, просто до кучи приведён
Loyd
Ну там в ишью и дальше такое направление мысли
Cat
become жеж
А, я чёто подумал, что ты про релиз 1.28
պլհկ
падажжите, я запутался в методичке, в try { } ключевое слово хейтим (потому что центрил), become не хейтим потому что @Psilon?
Loyd
Двоемыслие, чо
Маjко
Маjко
Нахуй новый синтаксис там где можно аттрибутом обойтись
Loyd
В лучших традициях Оруэлла
Loyd
Αλεχ
Αλεχ
а вообще да, я не центрил
Berkus
Маjко
Маjко
become вообще непойми что значит
Loyd
Loyd
Хотя проще реализацию посмотреть
Αλεχ
https://github.com/Nemo157/impl_sum
Маjко
Αλεχ
там в ридми написано
Αλεχ
ты читал?)
Loyd
Нет, каюсь
Loyd
Сразу в examples полез
Loyd
Ну там же всегда самое вкусное
Loyd
Оу. Довольно серьёзные ограничения
Marat
А почему NonZero числа занимают на 1 байт меньше места когда внутри енама или стракта лежат?
Cuno
Cuno
собственно об этом и дока говорит
Marat
This allows for size optimization, for example, Option<u8> is two bytes large, but Option<NonZeroU8> is just one byte large. Note that this optimization remains even when NonZeroU8 is wrapped inside another struct; the example below illustrates that Door is still 1 byte large despite being placed inside an Option. This optimization applies to user-defined enums as well: Option is not special.
Cuno
Ну там тривиальный кейс совсем. По сути Door и есть NonZeroU8
Cuno
Если хоть что-то добавить то оптимизация уже невозможна: https://play.rust-lang.org/?gist=637f27ca1879d5b612f47bdb87508f9e&version=nightly&mode=debug&edition=2015
Cuno
ХМ
Cuno
таки оптимизирует
Cuno
Ну неплохо
Marat
Так я что-то не понял что произошло, почему он два байта?