brado
Brado é um pacote Rust para validação de documentos brasileiros. Este projeto é inspirado na biblioteca Python validate-docbr.
Brado fornece funções para identificação, validação e geração de documentos brasileiros. O nome desta biblioteca (Brado) é um acronimo de BRAzilian DOcs validator (validador de DOcumentos BRAsileiros).
:warning: A documentação desta biblioteca pode ser acessada aqui.
Guia Rápido
Para adicionar o pacote ao projeto, basta rodar o seguinte comando:
Ou adicionar a linha a seguir no arquivo Cargo.toml:
= "0.3.5"
Documentos
- CPF: Cadastro de Pessoa Física;
- CNH: Carteira Nacional de Habilitação;
- CNPJ: Cadastro Nacional da Pessoa Jurídica;
- CNS: Cartão Nacional de Saúde;
- PIS: PIS/NIS/PASEP/NIT;
- Título eleitoral: Cadastro que permite cidadãos brasileiros votar;
- RENAVAM: Registro Nacional de Veículos Automotores;
- Certidão de Nascimento/Casamento/Óbito.
Funções
Todos os documentos possuem as mesmas funções e funcionam da mesma forma.
validate
Valida o documento passado como parâmetro (&str). Retorna um valor booleano (bool), true caso o documento seja válido, ou false caso contrário.
use cpf;
validate; // true
validate; // true
validate; // false
validate; // false
mask
Mascara o documento passado como parâmetro (&str). Retorna uma string (Result<String, &'static str>) correspondente ao documento mascarado ou um erro. A string passada não deve possuir símbolos.
use cpf;
mask; // Ok("639.292.470-11")
mask; // Err("The given string cannot be masked as CPF!")
mask; // Err("The given string cannot be masked as CPF!")
is_bare
Verifica se o documento passado como parâmetro (&str) não possui símbolos. Retorna um valor booleano (bool), true caso o documento não possua símbolos, ou false caso contrário.
use cpf;
is_bare; // true
is_bare; // true
is_bare; // false
is_bare; // false
is_bare; // false
OBS: se for utilizada a função
cpf::is_barepara verificar se um CNPJ não possui símbolos, o resultado seráfalse! Isso acontece pois esta função considera que a string é um CPF, ou seja, possui 11 dígitos.
is_masked
Verifica se o documento passado como parâmetro (&str) está mascarado de acordo com o documento correspondente. Retorna um valor booleano (bool), true caso o documento esteja mascarado, ou false caso contrário.
use cpf;
is_masked; // true
is_masked; // false
is_masked; // false
is_masked; // false
OBS:
cpf::is_maskedverifica se a string passada está mascarada como um CPF.cnpj::is_maskedverifica se a string passada está mascarada como um CNPJ.
generate
Gera um novo documento sem símbolos (String).
use cpf;
generate; // "639.292.470-11"
generate_masked
Gera um novo documento mascarado (String).
use cpf;
generate_masked; // "639.292.470-11"
Como Contribuir
- Instalar nix (com flakes, ou seja, >2.4);
- Fazer um fork do projeto;
- Clonando o repositório, e considerando que se está usando
direnv:
&& &&
Testes
Para rodar os testes, basta executar o comando a seguir: