in gazebo/src/ext/iter.rs [336:352]
fn try_unzip<A, B, FromA, FromB, E>(self) -> Result<(FromA, FromB), E>
where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
Self: Iterator<Item = Result<(A, B), E>>,
{
let mut ts: FromA = Default::default();
let mut us: FromB = Default::default();
for e in self {
let (t, u) = e?;
ts.extend(Some(t));
us.extend(Some(u));
}
Ok((ts, us))
}