Gibt es eine Möglichkeit, Arrays nicht zweimal initialisieren zu müssen?

Ich muss jedes Element eines Arrays mit einem nicht konstanten Ausdruck initialisieren. Kann ich das tun, ohne zuerst jedes Element des Arrays mit einem bedeutungslosen Ausdruck initialisieren zu müssen? Hier ist ein Beispiel dafür, was ich gerne tun würde:

fn foo(xs: &[i32; 1000]) {
    let mut ys: [i32; 1000];

    for (x, y) in xs.iter().zip(ys.iter_mut()) {
        *y = *x / 3;
    }
    // ...
}

Dieser Code gibt den Kompilierungsfehler an:

error[E0381]: borrow of possibly uninitialized variable: `ys`
 --> src/lib.rs:4:33
  |
4 |     for (x, y) in xs.iter().zip(ys.iter_mut()) {
  |                                 ^^ use of possibly uninitialized `ys`

Um das Problem zu beheben, muss ich die erste Zeile der Funktion ändern, um die Elemente von @ zu initialisiereys mit einigen Dummy-Werten wie folgt:

let mut ys: [i32; 1000] = [0; 1000];

Gibt es eine Möglichkeit, diese zusätzliche Initialisierung wegzulassen? Alles in ein @ einwickeunsafe Block scheint keinen Unterschied zu machen.