>what you are asking for would require dependent typing.
I know nothing about Rust, but you might find Oleg Kiselyov's: "Eliminating Array Bound Checking through Non-Dependent Types" interesting.
http://okmij.org/ftp/Haskell/eliminating-array-bound-check.l...
You may also like:
http://okmij.org/ftp/Haskell/number-parameterized-types.pdf
http://okmij.org/ftp/Computation/resource-aware-prog/tfp.pdf