Biblioteca C++ para validação, normalização e formatação de documentos brasileiros.
-
CPF
- Validação
- Normalização
- Formatação
-
CNPJ
- Validação
- Normalização
- Formatação
-
RG
- Validação básica
- Suporte alfanumérico
- Normalização
- Formatação simples
-
Testes automatizados com Google Test
brdoc/
│
├── include/
│ └── brdoc/
│ ├── CPF.hpp
│ ├── CNPJ.hpp
│ ├── RG.hpp
│ ├── Document.hpp
│ └── Validators.hpp
│
├── src/
│ ├── CPF.cpp
│ ├── CNPJ.cpp
│ ├── RG.cpp
│ └── Validators.cpp
│
├── tests/
│ ├── CPFTests.cpp
│ ├── CNPJTests.cpp
│ ├── RGTests.cpp
│ ├── DocumentTests.cpp
│ └── ValidatorsTests.cpp
│
├── examples/
│ ├── cpf_example.cpp
│ ├── cnpj_example.cpp
│ ├── rg_example.cpp
│ ├── document_example.cpp
│ └── validators_example.cpp
│
├── CMakeLists.txt
├── .gitignore
├── README.md
└── LICENSE
- C++ 20+
- CMake 3.20+
- Compiladores compatíveis:
- GCC
- Clang
- MSVC
- Clone
git clone https://github.com/Leandro-Cardoso/brdoc/
cd brdoc- Configuração
cmake -S . -B build -G "MinGW Makefiles"- Gerar build
cmake --build buildcd build
.\cpf_example.execd build
./cpf_examplecd build
ctestOu:
cd build
.\tests.exe#include <iostream>
#include <brdoc/CPF.hpp>
int main() {
brdoc::CPF cpf("529.982.247-25");
std::cout << cpf.value() << "\n";
std::cout << cpf.formatted() << "\n";
}#include <iostream>
#include <brdoc/CNPJ.hpp>
int main() {
brdoc::CNPJ cnpj("04.252.011/0001-10");
std::cout << cnpj.value() << "\n";
std::cout << cnpj.formatted() << "\n";
}#include <iostream>
#include <brdoc/RG.hpp>
int main() {
brdoc::RG rg("12.345.678-X");
std::cout << rg.value() << "\n";
std::cout << rg.formatted() << "\n";
}A biblioteca utiliza:
- Value Objects
- Imutabilidade
- Normalização de entrada
- Fail-fast validation
- Separação entre domínio e validação
| Classe | Descrição |
|---|---|
Document |
Classe base abstrata |
CPF |
Documento CPF |
CNPJ |
Documento CNPJ |
RG |
Documento RG |
Validators |
Funções auxiliares |
- Remove máscara
- Verifica tamanho
- Rejeita sequências repetidas
- Calcula dígitos verificadores
- Remove máscara
- Verifica tamanho
- Rejeita sequências repetidas
- Calcula dígitos verificadores
Validação básica:
- caracteres válidos
- tamanho válido
- suporte alfanumérico
O projeto utiliza Google Test.
Cobertura atual:
- Validators
- Document
- CPF
- CNPJ
- RG