Size: a a a

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

2020 November 11

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Если там везде from_fn, то наверное получится явно указать его тип
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
Mikail Bagishov
В стейбле - только Box<dyn Iterator<Item  = Self::Action>> возвращать
и оно в компайл тайме типы не порешает?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Yevhen Kazmin
и оно в компайл тайме типы не порешает?
Нет
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
Mikail Bagishov
Если там везде from_fn, то наверное получится явно указать его тип
я не смог generic тип F описать
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Компайл-тайм решение пока только в найтли
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
то есть я пишу
...) -> FromFn<?>
что вместо знака вопроса?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
А замыкания которые ты туда передаешь, что-нибудь захватывают?
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
let id_range = match state.next_sub {
 None => 0..9,
 Some(id) => id..id+1
};
std::iter::from_fn(move || {
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Видимо захватывают.
В таком случае ничего лучше чем Box<dyn FnMut() -> Option<Self::Action>> указать не получится
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
я ориентируюсь на перфоманс в этом месте, поэтому буду дальше что-то думать, Box + dyn в плане перфоманса не очень, наверное
источник

DD

Daniil Davydov in Rust — русскоговорящее сообществo
Можно стандартно - сделать структуру ActionsIter и реализовать для нее итератор
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ну я бы расчехлил найтли
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
можно передавать в метод функцию обработчик, и ее вызывать для каждого элемента
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Или вручную писал бы итераторы
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
Mikail Bagishov
Ну я бы расчехлил найтли
я посылаю свое решение в онлайн систему, там окружение уже настроено, менять нельзя
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ну то есть struct MyAwesomeIter;
и ручной impl Iterator for MyAwesomeIter {}
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Тогда можно добавить в трейт type Iter: Iterator<Item = Self::Action>;
И возвращать его
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
ладно, спасибо, буду пробовать
источник
2020 November 12

RB

Rustem B. in Rust — русскоговорящее сообществo
Я сделвль ^~^
источник

RB

Rustem B. in Rust — русскоговорящее сообществo
clang hello.c --target=aarch64 -ccc-gcc-name linux-gnu-gcc
kekw
источник