Tour de Rust Tabla de Contenidos

Código Inteligente No Seguro

Los punteros inteligentes tienden a usar código no seguro (unsafe) con bastante frecuencia. Como se mencionó anteriormente, son herramientas comunes para interactuar con los niveles más bajos de memoria en Rust.

¿Qué es código no seguro? El código no seguro se comporta exactamente como el normal de Rust, con la excepción de algunas habilidades que el compilador de Rust no puede garantizar.

Una de las principales capacidades de un código no seguro es la de indireccionar un puntero sin procesar. Eso significa mover un puntero sin procesar a una posición en la memoria y declarar que ahí existe una estructura de datos para después convertirlo en una representación de los datos que se pueden utilizar (es decir, *const u8 en u8). Rust no tiene forma de rastrear el significado de cada byte que se escribe en la memoria. Debido a que Rust no puede hacer garantizar lo que existe en un número arbitrario que se ha usado comoun puntero sin procesar, pone la indirección en un bloque no seguro unsafe { ... }.

Los punteros inteligentes indireccionan los punteros sin procesar ampliamente, pero están bien probados en lo que hacen.