Вы можете использовать generic_array ящик - это не позволяет использовать массивы Rust фиксированного размера, но вы можете выразить длину массива как связанный тип
trait My {
type C: ArrayLength<i32>;
}
А затем обратитесь к нему с привязкой черты
fn f<T>() -> GenericArray<i32, T::C> where T: My {
...
}
Затем вы также можете получить значение константы из типа с помощью to_usize .