Avatar ·

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