Vladimir
Т.е. impl PartialEq<Enum> for OneStruct
Vladimir
чтоб вывелся сам
Vladimir
Маjко
Такого не видел
Vladimir
PartialEq позволяет сравнивать разные типы
Berkus
Berkus
внутрь не вчитывался если что
Vladimir
ну вроде не подходит
Berkus
жаль
Loo
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
Cuno
Vladimir
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
ну и чтобы выглядело нормально, а не бегать в цикле и ставить мутабельные
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
Маjко
Alexander
опять не понял, я бы на всех языках точно так бы и написал
Alexander
Tuntz
что это?
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ко
Что в нем нормально не работает?