4 releases
0.1.3 | Jun 12, 2023 |
---|---|
0.1.2 | Jun 11, 2023 |
0.1.1 | Jun 10, 2023 |
0.1.0 | Jun 10, 2023 |
#3 in #brazilian
26 downloads per month
22KB
400 lines
💚💙💛 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
# 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