fn take_zip_from_parts<T1, T2>( o1: &mut Option<T1>, o2: &mut Option<T2>, ) -> Poll<(T1, T2)>
Extracts the contents of two options and zips them, handling (Some(_), None) cases
(Some(_), None)