I'm trying to make a trait to work for all numeric integer types. I though that limiting it for num_traits::Num would force it to be applicable only to u8, u16, etc so -1 would always work.
Presumably you have that number as a concrete type, like i32, then you need to convert that to T with TryFrom, FromPrimitive, or similar. The Num constraint only directly gives you from_str_radix.
It will almost certainly be inlined, especially for primitive types.