Como usar o sistema de tipos do Rust para modelar estados inválidos impossíveis
Estados inválidos são configurações de dados que não deveriam existir no domínio do problema, mas que acabam sendo representáveis devido a limitações da linguagem. Em Rust, o sistema de tipos permite tornar esses estados literalmente impossíveis de serem representados, deslocando a detecção de erros do tempo de execução para o tempo de compilação. Isso reduz drasticamente a necessidade de testes de unidade para validar invariantes e elimina classes inteiras de bugs.