Vladimir
Т.е. impl PartialEq<Enum> for OneStruct
Vladimir
чтоб вывелся сам
Маjко
Такого не видел
Vladimir
PartialEq позволяет сравнивать разные типы
Vladimir
Такого не видел
я ж по этому и крейт спрашиваю
Berkus
внутрь не вчитывался если что
Vladimir
ну вроде не подходит
Berkus
жаль
Loo
@c_vld я правильно понимаю что он должен по всем элементам энама проходиться и если хоть один equals то возвращать ок?
Cat
да там наверное однозначное совпадение названий вариантов инама и вложенных структур enum::One() всегда содержит OneStruct
Cat
можно попробовать OneStruct.into() == e let x:OneStruct=...; let y:Enum = ...; y == x.into() либо y.One == x
Cat
а через PartialEq не получилось?
Vladimir
а через PartialEq не получилось?
Получилось чего нет, но это вручнуб надр
Vladimir
А почему-бы не сделать вместо x == y -> Enum::One(x) == y?
Потому что абстрактный T на входе
Vladimir
Но этот T:Into<Enum>
Vladimir
Сравнивать через инто можно, но не оптимально
Маjко
Сравнивай через AsRef?
Vladimir
Но это ж не AsRef
Vladimir
А AsOptionRef
Vladimir
Или TryAsRef какой-то
Vladimir
Может сделать через TryInto конечно
Vladimir
&Enum: TryInto<&T>
Vladimir
Но проблемы теже что с Eq
Vladimir
Вот и спросил может есть в расте что-то для хендлинга "уникальных" вариантов енама
Alexander
Помогите, plz, вернуть доверие к Rust'у.
Alexander
так как от такого вот глаза вытекают: https://play.rust-lang.org/?gist=be13a5458532fbfca9575d73ac75604e&version=nightly&mode=debug
Alexander
20 строк чтобы собрать примитивную группировку, которую в другом языке (не в C++ конечно) можно было бы за пару строк собрать. при том, что тут постоянные сборки коллекций и маппинги, которые по факту не нужны были бы вообще.
Cat
а в чём задача стоит?
Alexander
_min _max это просто для примера, вопрос в группировке, а не как min/max найти
Alexander
а в чём задача стоит?
время + цена => свечки построить по сути минутные.
Alexander
ну и чтобы выглядело нормально, а не бегать в цикле и ставить мутабельные
Tuntz
что не так?
Tuntz
тебя into_iter и collect смущают или что?
Alexander
сорян, не понял, что не так в коде?
Alexander
а, смущает и into_iter и collect и map перед ним. потом ещё iter в то, что только что в collect собрал
Alexander
вот так это в норм языке делается, ни одного лишнего символа: select min v, max v by ts.minute from ts,'v
Alexander
а тут под 20!!! строк и причём куча всего непонятно зачем по факту
Tuntz
тут дело не в языке, а в выборе комбинатора
Alexander
? сорян, не понял
Tuntz
ну
Tuntz
если тебе не нравится такая цепочка значит ищи другой комбинатор
Маjко
Глянь на itertools
Alexander
опять не понял, я бы на всех языках точно так бы и написал
Alexander
Глянь на itertools
я его и использую, без него вообще хз как
Alexander
В каком?
так в Q же
Tuntz
что это?
Маjко
так в Q же
Это DSL для анализа данных?
Alexander
ну это полноценный язык, но немного да, для анализа заточен
Alexander
я могу переписать без select
Маjко
Лол
Tuntz
блядь
Маjко
Ну напиши либу для этого
Маjко
Будет тоже в одну строку
Маjко
Лол
Tuntz
сравнил жопу с пяткой -_-
Alexander
{(min x;max x)} each v[group ts]
Маjко
Сравнивать язык общего назначения с генерик либой итераторов и DSL
Alexander
ля, сорян конечно, но какую ещё либу чтобы сгруппировать вектор :)
Маjко
Ну ты хочешь в одну строку
Alexander
случайно показалось что в чате по asm нахожусь :)
Alexander
да я не хочу именно в одну строку, я просто хочу адекватно как-то
Маjко
Я не понимаю что тебе не нравится
Alexander
тут на 20 строк - куча коллекций, чтоб сразу вытащить итератор - нафига вообще хз, но без них не работает
Маjко
t.iter().zip(v.iter()) .group_by(|(ts,_)| ts.minute())
Маjко
Вот группировка
Маjко
Что тут не так?
Alexander
ok, нафига потом into_iter ?
Маjко
Затем что GroupBy это не итератор?
Alexander
ведь очевидно что group_by должен итератор выдавать? Разве нет ?
Маjко
Сделай issue в репе itertools
Alexander
ну и потом не ясно - нафига в vs он кладёт пары ключ+значение? ведь он и так ключ даёт в первом параметре
Маjко
Сделай issue в репе itertools
Alexander
т.е. vs хоть и итератор, но опять же нормально не работает
Маjко
Что в нем нормально не работает?