Cat
Врешь
серьёзно
Anton
ЭТО СПАМ БОТ
уже забанил
Alexey
ЭТО СПАМ БОТ
Так нет же, зачем ему спамить, если в имени уже все написано?
Anton
ну вообще да
Anton
вопрос только в том хули китайские боты забыли в чате
Cat
это не спам бот
Vladimir
Отключите нотификешн о приходе нового тела
Cat
да ну, не отключайте
Alexey
У кого-то до сих пор включены уведомления от чатов на 500+ тел?
Alexey
не, мы про саму надпись о входе
А, такого нет. Разве что бота-стирателя подключить
Cat
хм, странно казалось есть, но мб только не в супер-группах, не знаю
Vladimir
А, такого нет. Разве что бота-стирателя подключить
Та вроде есть, в некоторых чатах например пишут про уход типа
Латентный Бурят
https://hh.ru/vacancy/25519508
> low-level languages like Go Да вы ебанулись.
Латентный Бурят
А, уже было.
Латентный Бурят
Баян и всё такое.
Alexey
Ребят, начал учить раст. Кому можно кусок говнокода скинуть в лс и спросить, почему не работает? Гипнотизирую одну и ту же функцию уже с час, глаз замылился, упускаю что-то
Alexey
в лс конпелятору не кидал?
Кидал, гадости говорит всякие, как обычно)
Alexey
На самом деле код компилируется, но не работает)
კაცი
куски говнокода кидаются на пастобин
Cat
или плейграунд, play.rust-lang.org
Berkus
иначе всем лень
Alexey
в плейграунд кидай конечно
Уже разобрался, @kezvision в личке помог, но сказал, что тут все очень добрые тоже и можно в следующий раз прямо сюда кидать.
Berkus
Уже разобрался, @kezvision в личке помог, но сказал, что тут все очень добрые тоже и можно в следующий раз прямо сюда кидать.
ну да, но лучше ссылкой на плейграунд, чтобы можно было сразу запустить и посмотреть в чем проблема
Αλεχ
Как можно написать stateful итератор в расте?
Αλεχ
типа если ноль, то верни его, но в следующей итерации верни None?
Αλεχ
struct DigitEnumerator(u64); impl Iterator for DigitEnumerator { type Item = u8; fn next(&mut self) -> Option<u8> { let result = self.0 % 10; self.0 /= 10; Some(result as u8) } }
Αλεχ
непонятно, что делать с нулём
Cat
вместо new type сделать структуру с флагом?
Маjко
struct DigitEnumerator(u64); impl Iterator for DigitEnumerator { type Item = u8; fn next(&mut self) -> Option<u8> { let result = self.0 % 10; self.0 /= 10; Some(result as u8) } }
Добавить нужный стейт. Сейчас в стейте только число, может быть что угодно. Метод next -- &mut self, там может быть любой муиабельный стейт
Αλεχ
а почему он ваще мутирует кстати self?
Αλεχ
разве не может быть итератора, который имеет стейт
Vladimir
Потому что итератора итерируется
Αλεχ
но только читает?
Αλεχ
а точно
Αλεχ
сама структура итератора
Αλεχ
точняк
Αλεχ
да эт понятно
Αλεχ
я когда понял что он мутабельнйы пошел во все тяжкиме
Αλεχ
все дошло уже
Αλεχ
пасиба
Αλεχ
а по генератору итерироваться можно?
Αλεχ
а то там я видел только руками вызываемые resume
Vladimir
У генератора тип возвращаемого значения может быть отличный от yield
Αλεχ
бред
Vladimir
Так что не понятно как в общем случае должен выводиться итератор
Αλεχ
ну вот я хочу типовую штуку из кучи языков
Cat
while let Some(...) = gen.resume() { } не сработает?
Vladimir
Ну реализации для своего генератора итератор
Vladimir
В чём проблема
Αλεχ
do { yield return x%10; x/=10; } while (x != 0)
Αλεχ
который бы вернул impl Iter<Item=u32>
Vladimir
Ну у раста генераторы другие
Vladimir
Yield прерывает выполнение, а return завершает. Ну и логично, что эти типы имеют разное значение.
Антон
Генератор, возвращающий итераторы?
Vladimir
Генератор, возвращающий итераторы?
Ну он наверное имеет ввиду "реализовал"
Αλεχ
во всех языках они просто являются удобной инлайн-записью Iter<T>
Cat
так что, генераторы уже в стейбле?
Αλεχ
нет
Vladimir
Итераторы с первой версии
Vladimir
Ну смотри, генератор своим "прерванием" отображает процесс выполнение некой задачи
Vladimir
И то что результат не полной работы, отличается по типу от результата полной - логично
Αλεχ
для таких вещей есть коллбеки
Αλεχ
генераторы это именно "сделай мне итератор вот по такому правилу"
Vladimir
для таких вещей есть коллбеки
Колбеки не могут прогресс показать
Αλεχ
конечно могут
Cat
Колбеки не могут прогресс показать
могут если вызывать на каждой итерации