Since hardly it is what you want and it leads to funny error messages, [here an example](https://play.rust-lang.org/?version=stable&mode=debug&edition=2015): ``` rust struct S<T> { foo: T, } impl<u16> S<u16> { fn fee(&self, idx: usize) -> u16 { if (self.foo as usize) < idx { idx as u16 } else { 4 } } } fn main() { let f: S<u16> = S { foo: 42 }; println!(" {}", f.fee(13)); } ```