title: How to define an infinite range of a generic integer type in Rust?
body: <p>I have a generic type <code>T</code> that implements the <code>num::Integer</code> trait. I can write a <code>T</code>-based range iterator where <code>e</code> represents another value of type <code>T</code> denoting the upper bound of the range:</p>
  
  <pre><code>num::iter::range(T::one(), e)
  </code></pre>
  
  <p>The annoying thing is that it is necessarily bounded. How can I have an unbounded range? For primitive types, I can do something like <code>(1..)</code>. Can I do something like <code>num::iter::range(T::one(), T::infinity())</code>?</p>
  
  <p>I can't find a function that does this in <code>num::iter</code>. I would like to be able to call functional style functions afterwards like <code>map</code>, <code>filter</code> etc...</p>