Crate validador_br

source ·
Expand description

💚💙💛 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

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

Modules

  • Define métodos que são usados com frequência pelos algoritmos de verificação, como cálculo do dígito verificador, cálculo usando mod11, somente_digitos