Αλεχ
в моем случае точно не будет
Αλεχ
ибо ты возвращаешь структуру
Cuno
Или в боксе его тоже не будет?
В данном случае - не будет т.к. размер 0
Αλεχ
В данном случае - не будет т.к. размер 0
ну, а если это итератор какой-нибудь?
Αλεχ
потому что по аналогии то же самое можно сгенерить и для них
Αλεχ
а там точно нужно место под итератор
Cuno
Это может быть и стоит сделать в виде отдельной фичи, но не связывать прямо с impl Trait
Cuno
Иначе будет вообще неочевидно где диспатч есть, а где нету
Αλεχ
мб
Αλεχ
я просто как идею обсуждаю
Αλεχ
получается диспатч, но без аллокаций
Cuno
Никто не мешает второй вариант руками сейчас писать
Αλεχ
никто не мешает сделать что угодно
Cuno
Такое вообще можно макросом генерить, наверное
Cuno
Имплементацию трейта для Either
Vladimir
Такое вообще можно макросом генерить, наверное
поидее макросами будет геморно, либо вообще не получится
Vladimir
не получится удобно*
Vladimir
нужно ж кроме имплементации сокрыть использование
պլհկ
а если 3 варианта будет, чо будешь делать?
պլհկ
Either(A, B, C)
պլհկ
?
Evgεny
любую задачу можно свести к двум стульям
պլհկ
сегодня мы узнали, что можно использовать енумы для диспатча
պլհկ
(шок)
Αλεχ
Примерно как сделаны Tuples в шарпе
Αλεχ
до 8 он так и генерирует
Αλεχ
для 9 и выше начинает вкладывать один в другой
Αλεχ
tuple10 = (1,1,1,1,1,1,1,1, (1,1))
Αλεχ
хотя я не вижу проблем делать энумы с хоть 100 вариантами
Αλεχ
Eiter<Either<A, B>, C>
там будет цепочка вызовов в таком случае
Αλεχ
короче возможны варианты
Αλεχ
это надо инвестигейтить
Αλεχ
тут code bloat vs delegation
Αλεχ
ну если заинлайнятся то да
Cuno
https://play.rust-lang.org/?gist=36a3977b4dec51404ed35b007d9b99af&version=stable&mode=debug Там даже тег оптимизируется
Αλεχ
погоди
Αλεχ
попробуй трейт реализовать
Αλεχ
и пробрось его реализацию во внутринние Either
Αλεχ
кстати чтобы это работало нужна специализация
Αλεχ
насколько я понимаю
kitsu
чот даже раст программистам платят больше
Αλεχ
чот даже раст программистам платят больше
ты доплачиваешь за работу еще чтоль?
kitsu
в смысле?
Маjко
в смысле?
Это была отсылка к тому что якобы нет оплачиваемой работы на расте
պլհկ
https://play.rust-lang.org/?gist=a368851273b6ec979256eb87ef90ddfe&version=stable&mode=debug
Αλεχ
wut
я про то
Αλεχ
чтобы Either<A, Either<B,C>> работал не так, как Either<A,B>
Αλεχ
Зачем ему "работать не так"?
а, точно, он может просто метод вызвать
Αλεχ
да не, я чет подумал, что там поведение должно быть иным
Αλεχ
а там нормально все
Cuno
Вообще было бы неплохо, если бы можно было что-то подобное делать: impl<T, A, B> T for Either<A, B> where A: T, B: T {}
Cuno
Тогда никаких макросов не нужно было бы (для этой задачи)
պլհկ
Запахло НКТ
Aleksey
Это я вроде понял :) Не понял, что это дает
պլհկ
Как компилятор должен догадаться че как вызывать
Αλεχ
там все написано
Mark
а 10 минут билд на с4.large это ок?
Loo
Брат
Loo
Обнимемся
Loo
А если серьезно то зависит от проекта сильно
Mark
там у меня просто elasticbeanstalk и с таким билд таймом авто скейлинг не нужен
պլհկ
Зависит от того как собираешь
պլհկ
И что
Loo
А причем билд тайм и автоскейлинг
Loo
Какая связь?
Mark
та пока 10 минут будет билдить нагрузка ещё может вырости
Mark
и оно напдодит вселенную из ес2
Loo
Эээ