Comment obtenir une slice (tranche) sous forme de tableau (array) de taille fixe en Rust ?
Bonjour ! J'ai commencé à apprendre Rust et je suis confronté à un problème qui semble simple, mais je ne trouve pas de solution élégante.
J'ai une slice (tranche) provenant d'un vecteur ou d'un autre tableau, par exemple `&[u8]`. J'ai besoin de la convertir en un tableau de taille fixe, par exemple `[u8; 4]`. Dans d'autres langages, je ferais simplement un cast de type ou je prendrais les N premiers éléments, mais en Rust tout est strict avec les types.
Voici un exemple qui ne fonctionne pas :
```rust
fn main() {
let data: Vec = vec![1, 2, 3, 4, 5];
let slice: &[u8] = &data[0..4];
// Je veux obtenir un tableau [u8; 4]
let array: [u8; 4] = slice; // Erreur : expected array `[u8; 4]`, found `&[u8]`
}
```
Je sais que je peux copier manuellement chaque élément, mais cela semble moche :
```rust
let mut array: [u8; 4] = [0; 4];
for (i, &val)