Матрицы

(эх… как же мне стыдно за мои вопросы) А как создать двухмерным массив? можете рассказать прям на начальном уровне (для чайников)

Создаем массив из массивов и готово:

    let mut m = [[10_i32; 3]; 3];
    m[1][2] = 99;
    dbg!(m);

а что такое “10_” и что такое “dbg!”?

что такое “10_”

Кажется, на это я отвечал в одной из соседних тем пару дней назад:

что такое “dbg!”?

https://std.rs/dbghttps://doc.rust-lang.org/stable/std/macro.dbg.html
если совсем в двух словах, то макрос для удобной отладочной печати значений.
для куска кода выше выведет:

[src/main.rs:4] m = [
    [
        10,
        10,
        10,
    ],
    [
        10,
        10,
        99,
    ],
    [
        10,
        10,
        10,
    ],
]

а как заполнить двухмерный массив?

Если одной и той же константой, то смотри выше.

Если надо проитерироваться по каждой клетке, то, например, так:

fn main() {
    let mut m = [[10_i32; 3]; 3];
    for (i, row) in m.iter_mut().enumerate() {
        for (j, cell) in row.iter_mut().enumerate() {
            *cell = (i * 10 + j) as i32;
        }
    }
    dbg!(m);
}
вывод
[src/main.rs:8] m = [
    [
        0,
        1,
        2,
    ],
    [
        10,
        11,
        12,
    ],
    [
        20,
        21,
        22,
    ],
]

у меня получилось так
let mut m:[[i32; 3]; 3] = [[1,2,3],[1,2,5],[1,2,3]];
print!("{}", m[1][2]);
и выводит пять