in gazebo_derive/src/any_lifetime.rs [13:25]
fn punctuated_try_map<A, B, P: Clone>(
punctuated: &Punctuated<A, P>,
f: impl Fn(&A) -> syn::Result<B>,
) -> syn::Result<Punctuated<B, P>> {
let mut new_punctuated = Punctuated::new();
for pair in punctuated.pairs() {
new_punctuated.push_value(f(pair.value())?);
if let Some(p) = pair.punct() {
new_punctuated.push_punct((*p).clone());
}
}
Ok(new_punctuated)
}