Size: a a a

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

2020 November 24

DS

Doge Shibu in Rust — русскоговорящее сообществo
Я бы хотел бы в этом месте без HList'ов обойтись на дин трейтах, но по замерам дорого выходило + дизайн чуть хуже бы стал из-за ограничений на дин трейты.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Doge Shibu
Получится.

У меня некоторые операции с HList'ами спрятаны за impl MyTrait, которые я захотел тут заюзать.
HList'ы в расте это боль, да. Ну ты нестандартно используешь Раст, поэтому и получатель нестандартные проблемы. Все верно.
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
polunin.ai
HList'ы в расте это боль, да. Ну ты нестандартно используешь Раст, поэтому и получатель нестандартные проблемы. Все верно.
Ну с hlist'ами везде боль. Зато сгенерированный компилятором код там отличный выходит.

Будь у меня рабочий суперкомпилятор или хотя бы с нормальным partial evaluation'ом, то я бы такой дурью не маялся, но его у меня нет.
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Потому что это то место, где у меня как раз ручная специализация в зависимости от некоторых входных настроек.

И такой подход достаточно много перформанса выигрывает по измерениям, чтобы тупо забить на это.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Сделай нормально без своих глистов и будет нормально))
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
polunin.ai
Сделай нормально без своих глистов и будет нормально))
И потерять процентов 30-50% по скорости работы. Я уж лучше с hlist'ами буду
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Я думаю там можно без глистов сделать)
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
polunin.ai
Я думаю там можно без глистов сделать)
Без потери перформанса - нет. Даже enum_dispatch там повлияет на производительность (хотя его туда по другим причинам может быть сложно засунуть)

Есть альтернативный вариант, но там типомагия просто поднимется на более высокий уровень.

Или всегда можно накопипастить случаи со специализацией, но это ещё хуже hlist'ов по уровню неудобства.
источник

МЯ

Михаил Ярыков... in Rust — русскоговорящее сообществo
А можно поинтересоваться что это, и как оно выглядит в расте?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Михаил Ярыков
А можно поинтересоваться что это, и как оно выглядит в расте?
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Михаил Ярыков
А можно поинтересоваться что это, и как оно выглядит в расте?
Гетерогенный список. Когда ты хранишь в списке элементы разных типов без их боксинга в дин трейы или другого стирания подобного рода.
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Над ними в библиотеках подобной frunk определяют множество разных операций.

Точно так же можно определить Coproduct, который аналог Either'а, но для большего числа альтернатив.

И достаточно любопытный момент, что любой enum и struct можно представить как сочетания HList и Coproduct, т.е.
enum NormalType {
  One(i32, i64),
  Two(u64)
}

type NormalTypeRepresentation = Coprod![
  HList![i32, i64],
  HList![u64]
];

И frunk умеет переводить типы из одного представления в другое. Это можно пробовать использовать для дерайва трейтов без макросов, когда ты определяешь трейт для произвольного Hlist и Coprod и получаешь реализацию трейта для твоего типа автоматом за счёт перевода его в такой вид.
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Т.е. этот подход активно используется в скале (см. shapeless и typeclass deriving в скала 3) и в хаскеле (см. DeriveGeneric).

И позволяет делать авто-дерайвинг для своих тайпклассов. Получившийся сгенерированный код практически не отличается от того, что даст рукописный, если речь про раст и хаскель, где агрессивные компиляторы.
источник

VP

Vasili Pascal in Rust — русскоговорящее сообществo
Добрый день, посоветуйте библиотеку для работы с rabbimq в actix-web
источник

Z

Zymlex (Юрий) in Rust — русскоговорящее сообществo
Подскажите крупный чат для выбора GUI фреймворка (Windows, кроссплатформа)
источник

Z

Zymlex (Юрий) in Rust — русскоговорящее сообществo
Интересуют быстрые UI фреймворки для рисования множества элементов (графиков). Знаю есть QT (нюансы с лицензиями), Flutter (сырой под desktop), некоторые вообще lazarus советуют... Ранее ни с одним не работал.
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
Zymlex (Юрий)
Интересуют быстрые UI фреймворки для рисования множества элементов (графиков). Знаю есть QT (нюансы с лицензиями), Flutter (сырой под desktop), некоторые вообще lazarus советуют... Ранее ни с одним не работал.
QT это не Фреймворк графики
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Чарты же ему нужны)
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
На расте не видал честно говоря
источник

m

makoven in Rust — русскоговорящее сообществo
Boris Vinogradov
QT это не Фреймворк графики
источник