For array references, you usually just use usizedifferent integer types instead.
However, in order to do what you need, you can create a new trait, implement this trait for u16, u32and u64then restrict T to a new property.
pub trait MyNewTrait {}
impl MyNewTrait for u16 {}
impl MyNewTrait for u32 {}
impl MyNewTrait for u64 {}
struct Foo<T: MyNewTrait> { ... }
MyNewTrait impl, , u16, u32 u64.