title: Are there equivalents to slice::chunks/windows for iterators to loop over pairs, triplets etc?
body: <p>It can be useful to iterate over multiple variables at once, overlapping (<a href="https://doc.rust-lang.org/std/primitive.slice.html#method.windows" rel="noreferrer"><code>slice::windows</code></a>), or not (<a href="https://doc.rust-lang.org/std/primitive.slice.html#method.chunks" rel="noreferrer"><code>slice::chunks</code></a>).</p>
  <p>This only works for slices; is it possible to do this for iterators, using tuples for convenience?</p>
  <p>Something like the following could be written:</p>
  <pre><code>for (prev, next) in some_iter.windows(2) {
      ...
  }
  </code></pre>
  <p>If not, could it be implemented as a trait on existing iterators?</p>