Rust Inseguro (unsafe)
A linguagem Rust tem duas partes:
- Rust Seguro (Safe): memĂłria segura, nenhum comportamento indefinido Ă© possĂvel.
- Rust Inseguro (Unsafe): pode desencadear comportamento indefinido se pré-condiçÔes forem violadas.
Veremos principalmente Rust seguro neste curso, mas Ă© importante saber o que Ă© Rust inseguro (unsafe).
Código inseguro é geralmente pequeno e isolado, e seu funcionamento correto deve ser cuidadosamente documentado. Geralmente é envolto em uma camada de abstração segura.
O cĂłdigo inseguro do Rust oferece acesso a cinco novos recursos:
- Desreferenciar ponteiros brutos.
- Acessar ou modificar variĂĄveis estĂĄticas mutĂĄveis.
- Acessar os campos de uma
union
. - Chamar funçÔes inseguras (
unsafe
), incluindo funçÔesextern
(externas). - Implementar traits inseguros (
unsafe
traits).
A seguir, abordaremos brevemente os recursos inseguros. Para detalhes completos, consulte o CapĂtulo 19.1 no Rust Book e o Rustonomicon.
Rust inseguro não significa que o código esteja incorreto. Significa que os desenvolvedores desligaram os recursos de segurança do compilador e precisam escrever o código corretamente por eles mesmos. Significa também que o compilador não impÔe mais as regras de segurança de memória do Rust.