#![allow(dead_code, deprecated, unused_variables, unused_mut)] #![feature(try_trait_v2)] use std::ops::{ControlFlow, Try}; pub fn simple_try_fold_3>( iter: impl Iterator, mut accum: A, mut f: impl FnMut(A, T) -> R, ) -> R { for x in iter { let cf = f(accum, x).branch(); match cf { ControlFlow::Continue(a) => accum = a, ControlFlow::Break(r) => return R::from_residual(r), } } R::from_output(accum) } fn main() {}