Garantias em Tempo de Execução

Nenhum comportamento indefinido em tempo de execução:

  • O acesso a matrizes tem limites verificados.
  • Estouro de números inteiros é definido (“pânico” ou wrap-around).

Pontos chave:

  • O estouro de números inteiros é definido por meio da flag overflow-checks em tempo de compilação. Se habilitada, o programa causará um pânico (uma falha controlada do programa). Caso contrário, será usada a semântica wrap-around. Por padrão, você obtém pânicos em modo de depuração (cargo build) e wrap-around em modo de produção (cargo build --release).

  • A verificação de limites (“bounds checking”) não pode ser desativada com uma flag do compilador. Ela também não pode ser desativada diretamente com a palavra-chave unsafe. No entanto, unsafe permite que você chame funções como slice::get_unchecked que não faz verificação de limites.