validador-br

Crates.iovalidador-br
lib.rsvalidador-br
version0.1.3
sourcesrc
created_at2023-06-10 18:06:34.80063
updated_at2023-06-12 03:53:31.009995
descriptionValidador 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
homepage
repositoryhttps://github.com/ricardodarocha/validador-br/
max_upload_size
id887011
size38,862
Ricardo da Rocha (ricardodarocha)

documentation

https://docs.rs/validador-br

README

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

Commit count: 45

cargo fmt