есть Zip<Iter<>, Iter<>> мне нужно пройтись по нему в двух циклах for по-наивному сделать нельзя, ругается на использование после мува: for (token, rule) in iter { } for (token, rule) in iter { // <- здесь ругается } но если я ставлю & перед iter, то пишет что &Zip is not iterator как тут взять ссылку?
Использовать тот или иной вид указателя на dyn Trait. Боксить не обязательно, обычной ссылки вполне достаточно. Только как минимум в одной ветке нужно явно к ссылке на dyn Trait скастовать
есть Zip<Iter<>, Iter<>> мне нужно пройтись по нему в двух циклах for по-наивному сделать нельзя, ругается на использование после мува: for (token, rule) in iter { } for (token, rule) in iter { // <- здесь ругается } но если я ставлю & перед iter, то пишет что &Zip is not iterator как тут взять ссылку?
ходить 2 раза плохо. Сделай фолд (который ты не любишь, хе), и в процессе этого формируй 2 аккумулятора