Size: a a a

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

2020 March 02

ID

Ivan Dubrov in Rust — русскоговорящее сообществo
(функцию into_any_box, that is)
источник

p

polunin.ai in Rust — русскоговорящее сообществo
спс, именно это мне и нужно было
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
polunin.ai
спс, именно это мне и нужно было
делают тут понимаешь ли из раста питон
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Alex Zhukovsky
делают тут понимаешь ли из раста питон
ну это только для тестов
в рабочем коде конечно не буду юзать такое
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
polunin.ai
ну это только для тестов
в рабочем коде конечно не буду юзать такое
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
источник

ID

Ivan Dubrov in Rust — русскоговорящее сообществo
У половина рабочего кода в trait object-ах. Так что я мастер dynamic dispatch.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
есть Zip<Iter<>, Iter<>>
мне нужно пройтись по нему в двух циклах for
по-наивному сделать нельзя, ругается на использование после мува:
for (token, rule) in iter {
}
for (token, rule) in iter { // <- здесь ругается
}
но если я ставлю & перед iter, то пишет что &Zip is not iterator
как тут взять ссылку?
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
polunin.ai
есть Zip<Iter<>, Iter<>>
мне нужно пройтись по нему в двух циклах for
по-наивному сделать нельзя, ругается на использование после мува:
for (token, rule) in iter {
}
for (token, rule) in iter { // <- здесь ругается
}
но если я ставлю & перед iter, то пишет что &Zip is not iterator
как тут взять ссылку?
подозреваю, что сам зип итератор можно склонировать
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Andrey @ozkriff Lesnikov
подозреваю, что сам зип итератор можно склонировать
ну мне нужно продолжить выполнение с того места на котором оно закончилось в первом цикле
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
polunin.ai
ну мне нужно продолжить выполнение с того места на котором оно закончилось в первом цикле
хм. у тебя же твой зип после первого цикла все равно уже пустой должен был бы остаться
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Andrey @ozkriff Lesnikov
хм. у тебя же твой зип после первого цикла все равно уже пустой должен был бы остаться
там break; есть
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
а. тогда можно рассахарить первый for в while цикл и руками дергать в нем next, не сжирая весь итератор
источник

p

polunin.ai in Rust — русскоговорящее сообществo
да, сбилдилось, спасибо
источник

АВ

Андрей Власов in Rust — русскоговорящее сообществo
polunin.ai
есть Zip<Iter<>, Iter<>>
мне нужно пройтись по нему в двух циклах for
по-наивному сделать нельзя, ругается на использование после мува:
for (token, rule) in iter {
}
for (token, rule) in iter { // <- здесь ругается
}
но если я ставлю & перед iter, то пишет что &Zip is not iterator
как тут взять ссылку?
А в первом форе если &mut iter сделать не работает?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Андрей Власов
А в первом форе если &mut iter сделать не работает?
а, бля, там же требуется mut ссылка, забыл
да, работает
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
https://intellij-rust.github.io/2020/03/02/changelog-117.html

Улучшенная работа с cfg, repl и базовая проверка ошибок в форматных строках.
источник

В

Вафель in Rust — русскоговорящее сообществo
Ivan Dubrov
1. можно через into_any_box() -> Box<dyn Any> (а потом уже на Box<dyn Any> можно downcast)
2. можно свой аля-Any в Trait завезти (`mopa` крейт)
3. если совсем упороться (например тесту и вообще), можно затрансмьютить, скрестив пальцы (именно это downcast и делает, ну кроме того что вместо скрещивания пальцев оно все-таки чекает тип)
Трансмьют неоч ибо Box<T: Sized> = usize, Box<dyn Trait> = usize * 2
источник

В

Вафель in Rust — русскоговорящее сообществo
Ну в плане надо как минимум аккуратно
источник

В

Вафель in Rust — русскоговорящее сообществo
А. почему просто не сделать trait Trait: Any?
источник