#validation #document #brazilian #validate #numbers #de #validador

validador-br

Validador para diversos documentos nacionais do Brasil (BR). Implementa o cálculo do dígito verificador para diversos tipos de documentos nacionais do Brasil Cpf, Cnpj, CartaoCredito, TituloEleitor, Cnh, Rg, Pis; Em breve implementados novos documentos Ie Im Inss Renavam

4 releases

0.1.3 Jun 12, 2023
0.1.2 Jun 11, 2023
0.1.1 Jun 10, 2023
0.1.0 Jun 10, 2023

#3 in #brazilian

26 downloads per month

MIT/Apache

22KB
400 lines

💚💙💛 Validador-br

A Brazilian document numbers validator written in rust

Um validador para diversos documentos nacionais (BR) em rust

Crates.io Crates.io API Fórum de discussão

GitHub stars Dê a sua contribuição comentando, compartilhando ou realizando um pull request!

[0.1.3] - 2023-06-12

  • Implementado trait try_from() try_into()
  • Os módulos foram separados em arquivos

[0.1.2] - 2023-06-11

  • Adicionados novos tipos de documentos
pub struct Cns<'data>(pub &'data str);
pub struct Renavam<'data>(pub &'data str);
pub struct CodigoBarrasGs1<'data>(pub &'data str); // EAN8 EAN13 GTIN08..18

[0.1.1] - 2023-06-10

struct Cpf(&str);struct Cnpj(&str);struct CartaoCredito(&str);struct TituloEleitor(&str);struct Cnh(&str);struct Rg(&str); ✔ ⚠ ///verificar a legislação em seu Estado
struct Pis(&str);struct Ie(Uf, &str);

Consulte o change log para mais informações.

Roadmap

  • Implementar os documentos mais comuns ✅
  • Ignorar caracteres especiais, espaços e pontuações ✅
  • Emitir um erro panic! caso o número de dígitos esteja incorreto ✅
  • Validar antecipadamente a quantidade de dígitos numéricos. 000.000.00_.XX
  • Analisar repetições de dígitos como 111.111.111-11 ou 000.000.000-00
  • Validar inscrição estadual de cada estado ❌
  • Implementar novos tipos de documentos ❌

Instalação

Adicione a dependência ao seu Cargo.toml:

[dependencies]
validador-br = "0.1.2"

Uso básico

use validador_br::types::{Cpf};

let cpf = Cpf::try_from("085.668.830-47");
match cpf {
    Ok(cpf) => println!("{}", cpf.0),
    Err(invalido) => panic!("{}", invalido)
};

Também é possível usar o método validar() embora não seja recomendado.

use validador_br::validador::*;
use validador_br::types::{Cpf, Cnh};
Cpf("255.248.930-33").validar(); // ✅ true 
Cpf("25524893033").validar();// ✅ true
Cnh("25524893033").validar();// ❌ false

Validando uma lista de cpfs

use validador_br::validador::*;
use validador_br::types::Cpf;

fn main() {
    let cpf_list = [&"133.976.410-55", &"922.261.830-00", &"922.261.830-01", &"218.571.960-23"];
    for num in cpf_list {
        if Cpf::is_valid(num) {
            println!("{}", num)
        } else {
            println!("{}", num)
        }
    }
}

Utilizando Strings dinâmicas

# use validador_br::validador::*;
# use validador_br::types::Cpf;
let cpf_string = String::from("133.976.410-55");
if Cpf(cpf_string.as_str()).validar() {}

Licença

validador-br é um software Open Source licenciado pelo MIT

No runtime deps