zips

Just because I was annoyed that I couldn't use Option<T>::zip with more than 2 arguments...
Zips provides 2 proc-macros that accept any number of either Option<T>s or Result<T, E>s as arguments and produces an Option<(T [, T...])>.
Installation
Usage
With Option<T>:
use ;
With Result<T, E>:
let m: = Ok;
let n: = Ok;
let o: = Err;
// zipped_ok: Option<(i32, usize)>
let zipped_ok = zip_result!;
assert_eq!;
// zipped_err: Option<((i32, usize), ())>
let zipped_err = zip_result!;
assert_eq!;
}