Expand description
💚💙💛 Validador-br
A Brazilian document numbers validator written in rust
Um validador para diversos documentos nacionais (BR) em rust
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
ou000.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§
- 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