Cómo obtener un slice como un array de tamaño fijo en Rust?
¡Hola! Empecé a aprender Rust y me encontré con un problema que parece simple, pero no puedo encontrar una solución elegante.
Tengo un slice de un vector u otro array, por ejemplo `&[u8]`. Necesito convertirlo en un array de tamaño fijo, por ejemplo `[u8; 4]`. En otros lenguajes simplemente castearía los tipos o tomaría los primeros N elementos, pero en Rust todo es estricto con los tipos.
Aquí hay un ejemplo que no funciona:
```rust
fn main() {
let data: Vec = vec![1, 2, 3, 4, 5];
let slice: &[u8] = &data[0..4];
// Quiero obtener un array [u8; 4]
let array: [u8; 4] = slice; // Error: expected array `[u8; 4]`, found `&[u8]`
}
```
Sé que puedo copiar manualmente cada elemento, pero se ve feo:
```rust
let mut array: [u8; 4] = [0; 4];
for (i, &val) in slice.iter().enumerate() {
array[i] = val;
}
```
¿Hay alguna forma de hacerlo más idiomático? He oído sobre `try_into()`, pero devuelve un Result, y no estoy seguro de que sea correcto. Sugerencia