Editor\'s note: This question was asked before Rust 1.0 was released and the
..\"range\" operator was introduced. The question\'s code no longer
Editor's note: This question refers to parts of Rust that predate Rust 1.0. Look at other answers for up to date code.
Your code doesn't work because a uint of value -1 is equal the maximum value of uint. The range_step iterator stops immediately upon detecting overflow. Using an int fixes this.
std::iter::range_step(100i, 0, -1)
You can also reverse an iterator with rev().
for n in range(0u, 100).rev() { ... }
Though note that this will be from 99->0, rather than 100->1.