то время как параллельная итерация подразумевает более-менее независимый порядок.
я нашел только while_some() в rayon, который остановит итератор если получит None, но пришлось перед ним в Option мапить элементы, может есть способ получше
Проще всего сделать один непараллельный проход на поиск конца, а потом взять весь слайс и параллельно проитерироваться. Если конец итерации определяется не контентом слайса, а, например, временем, тут уже будет сложнее.
while_some, возможно, работает не так, как вы того ожидаете. Он остановится на любом None, не на первом в порядке итерации.
repeat в rayon создает параллельный итератор
А, действительно. Остановку в произвольный момент времени проще всего сделать одной из try_* функций.
Обсуждают сегодня