Изменения в новых версиях / Rust 1.51

// *** before: ***
// длина массива не была параметром типа, поэтому писали по срезу
// и теряли её из типа - или размножали код макросом
fn sum(values: &[i32]) -> i32 {
    values.iter().sum()
}

// *** in version 1.51: ***
// длина - обычный параметр типа, известный при сборке
fn sum<const Nusize>(values: [i32N]) -> i32 {
    values.iter().sum()
}

struct Matrix<const ROWSusizeconst COLSusize> {
    cells: [[f64COLS]; ROWS],
}

println!("{}"sum([123]));