Rust iterator which takes two iterators and return not empty one
use or_iterator::OrIterator;
let v1 = vec![1, 2, 3];
let v2 = vec![4, 5];
let or = v1.iter().or(v2.iter());
assert_eq!(3, or.count());
let v1 = vec![];
let v2 = vec![4, 5];
let or = v1.iter().or(v2.iter());
assert_eq!(2, or.count());
Frank Steffahn (https://internals.rust-lang.org/u/steffahn)