Skip to main content

Crate validador_br

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 Contribua comentando, compartilhando ou realizando um pull request!

§[0.1.5] - incoming

  • Remoção do namespace types::* , acesse os documentos diretamente use validador-br::Cnpj

§[0.1.4] - 2026-07-03

  • Implementar suporte ao CNPJ alfanumérico

§[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.4"

§Uso básico

use validador_br::types::{Cpf, Cnpj};

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

let cnpj = Cnpj::try_from("90.33N.F02/0001-88");
match cnpj {
    Ok(cnpj) => println!("{}✅", cnpj.0),
    Err(invalido) => panic!("{}", invalido)
};

Também é possível usar o método validar().

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

Re-exports§

pub use validador::Validador;
pub use types::*;

Modules§

funcoes
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
parser
types
validador
validador_ie