Use const generics by adding a const parameter to your struct or function definition to pass compile-time values like array sizes. This allows the compiler to generate specialized code for each size, enabling advanced type-level programming without runtime overhead.
struct ArrayWrapper<const N: usize> {
data: [i32; N],
}
impl<const N: usize> ArrayWrapper<N> {
fn new() -> Self {
ArrayWrapper { data: [0; N] }
}
}
fn main() {
let a = ArrayWrapper::<5>::new();
let b = ArrayWrapper::<10>::new();
}