# Rust Validador
Uma biblioteca Rust simples para validação de documentos brasileiros.
## Funcionalidades
* Validação de CPF.
* Validação de CNPJ.
* Aceita documentos com ou sem formatação.
* Remove automaticamente caracteres não numéricos.
* Rejeita sequências com todos os dígitos iguais.
* Valida os dígitos verificadores conforme os algoritmos oficiais.
## Instalação
Adicione a dependência ao seu `Cargo.toml`:
```toml
[dependencies]
rust-validador = "0.1.0"
```
## Uso
```rust
use rust_validador::Validadores;
fn main() {
let cpf_valido = Validadores::cpf("529.982.247-25");
let cnpj_valido = Validadores::cnpj("11.444.777/0001-61");
println!("CPF válido: {}", cpf_valido);
println!("CNPJ válido: {}", cnpj_valido);
}
```
## Exemplos
### CPF
```rust
assert!(Validadores::cpf("529.982.247-25"));
assert!(Validadores::cpf("52998224725"));
assert!(!Validadores::cpf("111.111.111-11"));
assert!(!Validadores::cpf("123.456.789-00"));
```
### CNPJ
```rust
assert!(Validadores::cnpj("11.444.777/0001-61"));
assert!(Validadores::cnpj("11444777000161"));
assert!(!Validadores::cnpj("11.111.111/1111-11"));
assert!(!Validadores::cnpj("12345678000100"));
```
## API
### CPF
```rust
pub fn cpf(cpf: &str) -> bool
```
Retorna `true` se o CPF for válido e `false` caso contrário.
### CNPJ
```rust
pub fn cnpj(cnpj: &str) -> bool
```
Retorna `true` se o CNPJ for válido e `false` caso contrário.
## Como funciona
### CPF
1. Remove caracteres não numéricos.
2. Verifica se existem exatamente 11 dígitos.
3. Rejeita sequências com todos os dígitos iguais.
4. Calcula os dois dígitos verificadores.
5. Compara os resultados com os dígitos informados.
### CNPJ
1. Remove caracteres não numéricos.
2. Verifica se existem exatamente 14 dígitos.
3. Rejeita sequências com todos os dígitos iguais.
4. Calcula os dois dígitos verificadores.
5. Compara os resultados com os dígitos informados.
## Licença
Este projeto está licenciado sob a licença MIT.