Alexander
Плохо.
Нави
для функции push_front пишет ошибку в процессе работы: CapacityError: insufficient capacity, и что за недостаточная мощность?
պլհկ
Надо чтоб после каждой компиляции код на ревью мацакису отправлялся
պլհկ
Охуели совсем, пишут как хотят
Αλεχ
Плохо.
Напиши линтер и запрети одно
Судзумия
для функции push_front пишет ошибку в процессе работы: CapacityError: insufficient capacity, и что за недостаточная мощность?
Надо сменить топливо в ядерном реакторе, не выдаёт необходимые гигаватты
Alexander
Мда
Потому как надо и поддерживать все эти варианты написания а это поддержка вообще разных подходов.
Αλεχ
А то я смущён что два варианта
Судзумия
или x >> 1
Нави
Надо сменить топливо в ядерном реакторе, не выдаёт необходимые гигаватты
я в циклический массив записываю Json-данные, ему разве есть разница, одно чило на элемент массива или другой массив
Alexander
Я не говорю о том что всё прямо, но много дублирований можно убрать. Язык без такого на слуху - перл. Так ещё больше вариантов написания одного.
Судзумия
про плюсы слышал?
պլհկ
Это в перле дублирования нет?
доня.
вообще если ты матчишь опшн, значит ты что-то делаешь не так скорее всего
Cat
слишком много дублирования (скрытый посыл: и поэтому никто не пользуется)
պլհկ
Нави
какой Behavior?
let mut data: ArrayDeque<[_; 10]> = ArrayDeque::new(); data.extend_front(vec![get.unwrap(); 10].into_iter()); тут нормально заполняется а потом добавляю со смещением: data.push_front(get.unwrap()).unwrap(); и здесь ошибка выпадает
Нави
хотя, я блин дурак, наверно догадался уже)
պլհկ
Ты не поверишь
Andrey
ну то есть Behavior = Saturating, а хочется Wrapping да?
доня.
почему?
ну потому что вся суть функторов и монадок (СОРЯН за сложные слова но это так и есть) в том чтобы не разворачивать/заворачивать (тем же матчингом) значения постоянно, а заюзать комбинатор вроде map или and_then, который сам распакует, ты сделаешь что тебе нужно со значением как будто оно ни в какой опшн не завёрнуто, и потом тот же комбинатор его обратно при необходимости запакует (ну если у тебя там не что-нибудь вроде or_else)
պլհկ
У тебя очередь размером 10
Alexander
вообще если ты матчишь опшн, значит ты что-то делаешь не так скорее всего
Ну вот да, просто если уж много вариантов то иногда каким-то практикам следуют, я вот и хотел узнать вдруг уже есть практик описание.
պլհկ
https://github.com/rust-unofficial/patterns
Alexander
О, спасибо, почитаю.
Cat
что я делаю не правильно?
պլհկ
что я делаю не правильно?
На расте пишешь, а не хаскеле
Alexander
Почему например for_each предпочтительнее, потому как потом распараллелить вообще изи. Хотя конечно где-то и return нужен.
Cat
На расте пишешь, а не хаскеле
но библиотеки-то не я придумываю(
Cat
если бы я мог контроллировать то, что они возвращают после unwrap
Cat
хм
Cat
пойду грепну, наверняка же наговнокодил
Alexander
Про район не не слышал?
Я именно про него.
Alexander
https://github.com/rust-unofficial/patterns
На вид отличный реп, спасибо. Надеюсь будет расширяться.
Денис
Я хотел был дернуть, а потом оказалось что публичных спек нема
ну да, но как-то девайсами рулить всё равно нужно, благо умные люди реверс-инженерят их протоколы
LexsZero
всмысле нету?
LexsZero
есть стандартные классы и wireshark
Денис
ну они как бы есть
Денис
но производителям насрать
LexsZero
ну если у тебя там какой-нибудь блютус-дилдак, то да
LexsZero
а всякие колонки вполне себе класс-компатибл
Денис
хз, xiaomi-девайсы для "умного" дома подходят под классификацию дилдаков?
Денис
или девайс, чтобы крутить вентели на батарее отопления?
պլհկ
Они же вайфайные
Денис
Денис
датчики температуры всяческие
պլհկ
https://github.com/sgbasaraner/yeelight-cli
Денис
as long as your device supports
Денис
да не, там на самом деле никаких прям вот пипец сложностей нет, везде протоколы действительно ваершарком на глаз определяются почти всегда
Денис
но один фиг это надо делать
պլհկ
@LooMaclin у тебя ж сапортс?
Денис
например, у них есть девайсы, которые измеряют влажность/освещение/проводимость почвы для автоматизирования выращивания понятно чего
պլհկ
Воу воу
Денис
можно было бы ожидать, что тот же протокол подойдёт и для датчика, который измеряет комнатную температуру/влажность
Денис
но нет, это было бы слишком просто
Денис
https://github.com/kipe/miplant
Loo
@LooMaclin у тебя ж сапортс?
Да, все работает
Нави
нифига что то не хочет сдвигать и обновлять циклический буфер: thread '<unnamed>' panicked at 'called Result::unwrap() on an Err value: CapacityError: insufficient capacity', libcore/result.rs:945:5 note: Run with RUST_BACKTRACE=1 for a backtrace. правда я использую в качестве значений сложные json-данные, которые получаю с интернет-запроса, и наверно из-за этого он и ругается
Нави
главное первично заполнить он сумел, а после нехочет
Маjко
Сделай пример на плейграунд или в гист
պլհկ
Да там арэй на 10, он пихает 11й
Нави
Сделай пример на плейграунд или в гист
Вышел проветрить мозги, вернусь, покажу
Нави
Да там арэй на 10, он пихает 11й
Пытаюсь одно значение протолкнуть, push_front и insert ругается той ошибкой, а extend_front как и понятно ничего не делает в заполненном буфере
պլհկ
Какой крейт юзаешь?
Маjко
Да там арэй на 10, он пихает 11й
Это понятно, но он же вроде рингбуффер хотел
Нави
Какой крейт юзаешь?
ArrayDeque Щас не скажу, не за компом, непомню
պլհկ
https://docs.rs/arraydeque/0.4.2/arraydeque/behavior/index.html#wrapping
Нави
https://docs.rs/arraydeque/0.4.2/arraydeque/behavior/index.html#wrapping
Это и есть, пишу просто: use arraydeque::ArrayDeque и всё
պլհկ
По дефолту Saturating там