в Result<impl Iterator<Item = (u32, String)>, Error>?
Можно. Но сложно😂
Скину код, поймёшь, не поймёшь, зависит от тебя
скорее даже impl Iterator<Item = Result<(u32, String), Error>> в Result<impl Iterator<Item = (u32, String)>, Error>
В общем есть два варианта:
Хотя напрямую переделать impl Iterator<Item = Result<(u32, String), Error>> в Result<impl Iterator<Item = (u32, String)>, Error> без промежуточного буфера (аллокации) все равно не получиться. Так что наверное проще взять try_collect
А как то можно пробежаться по итератору и выбросить первую попавшуюся ошибку?
Думаю нет наверное. Хотя
Лучше этого решения ничего в голову не приходит. Но придется проверять статус GenericShunt, так как он может остановиться или по тому что есть ошибка, или просто потому что итератор кончился: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=da98e9f371a65477cc5d0ab6bc92fe47
Обсуждают сегодня