Skip to content

ricardodarocha/validador-br

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Validador para diversos documentos nacionais (BR)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages