Similarly to Ref structure we could introduce ```rust struct Iter<I: Iterator<T>, T: Encode>(&I, Phantom<T>) ``` or maybe ```rust struct Iter<I: Iterator<T>, T: EncodeLike<U>, U: Encode>(&I, Phantom<(T, U)>) ``` And then implement `EncodeLike<Vec<U>>` for it.