Skip to main content

Crate legalis_br

Crate legalis_br 

Source
Expand description

§Legalis-BR: Brazilian Law Library

Comprehensive Brazilian legal framework implementation in Pure Rust.

§Overview

Brazil operates under a Civil Law system, part of the Romano-Germanic tradition. This library provides validation, types, and utilities for key Brazilian legislation:

DomainLawYearKey Provisions
ConsumerCDC (Lei 8.078)1990Consumer as vulnerable party, strict liability
LaborCLT (Lei 5.452)194344h/week, 13th salary, FGTS
CivilCódigo Civil (Lei 10.406)2002Contracts, property, obligations
Data ProtectionLGPD (Lei 13.709)2018Brazil’s GDPR (10 legal bases)
CorporateLei das S.A. (Lei 6.404)1976Corporations, governance
ConstitutionCF/881988Fundamental rights, federalism

Brazilian citations follow a specific format:

Lei nº [number]/[year], Art. [article]º, §[paragraph]º, inciso [clause]

§Examples

use legalis_br::citation::*;

// Consumer Defense Code
let cdc = format_cdc_citation(5, None, None);
assert_eq!(cdc, "Lei nº 8.078/1990, Art. 5º");

// CLT with paragraph
let clt = format_clt_citation(58, Some(1), None);
assert_eq!(clt, "Lei nº 5.452/1943, Art. 58º, §1º");

// Constitution with clause (inciso)
let cf = format_constitution_citation(5, None, Some(RomanNumeral::X));
assert_eq!(cf, "Constituição Federal, Art. 5º, inciso X");

§Currency: Brazilian Real (BRL)

use legalis_br::common::BrazilianCurrency;

let salary = BrazilianCurrency::from_reais(1412); // Minimum wage 2024
assert_eq!(salary.to_string(), "R$ 1412,00");

let fine = BrazilianCurrency::from_centavos(150050);
assert_eq!(fine.reais(), 1500);
assert_eq!(fine.cents(), 50);

§Document Validation (CPF/CNPJ)

use legalis_br::common::{validate_cpf, validate_cnpj};

// CPF - Individual taxpayer ID (11 digits)
assert!(validate_cpf("123.456.789-09").is_ok());

// CNPJ - Corporate taxpayer ID (14 digits)
assert!(validate_cnpj("11.222.333/0001-81").is_ok());

§Brazilian States

use legalis_br::common::BrazilianState;

let sp = BrazilianState::SP;
assert_eq!(sp.nome_pt(), "São Paulo");
assert_eq!(sp.region_pt(), "Sudeste");
assert_eq!(sp.abbreviation(), "SP");

§Consumer Law (CDC)

PrincipleDescription
VulnerabilityConsumer presumed vulnerable (Art. 4)
Strict LiabilityManufacturer/provider liable regardless of fault (Arts. 12-14)
7-Day WithdrawalRight to withdraw from distance contracts (Art. 49)
Contract InterpretationAmbiguities resolved in favor of consumer (Art. 47)

§Labor Law (CLT)

ProvisionDetails
Working Hours44h/week maximum (Art. 58)
13th SalaryChristmas bonus = 1 month salary
Vacation30 days + 1/3 bonus
FGTS8% monthly severance fund
Notice Period30 days minimum

§Data Protection (LGPD)

AspectLGPD (Brazil)
Legal Bases10 (Art. 7)
Data Subject Rights9 (Art. 18)
DPO RequiredYes (Encarregado)
AuthorityANPD
PenaltiesUp to 2% revenue (R$50M max)

§Bilingual Support

All types support both Portuguese (authoritative) and English translations:

use legalis_br::common::BrazilianState;

let state = BrazilianState::MG;
assert_eq!(state.nome_pt(), "Minas Gerais"); // Portuguese

§Module Structure

§References

Re-exports§

pub use citation::BrazilianCitation;
pub use citation::RomanNumeral;
pub use citation::format_cdc_citation;
pub use citation::format_civil_code_citation;
pub use citation::format_clt_citation;
pub use citation::format_constitution_citation;
pub use citation::format_law_number;
pub use citation::format_lei_citation;
pub use citation::format_lei_das_sa_citation;
pub use citation::format_lgpd_citation;
pub use citation::parse_roman_numeral;
pub use citation::to_roman_numeral;
pub use common::BrazilianCurrency;
pub use common::BrazilianDate;
pub use common::BrazilianDocument;
pub use common::BrazilianState;
pub use common::DocumentType;
pub use common::FederalEntity;
pub use common::Municipality;
pub use common::validate_cnpj;
pub use common::validate_cpf;
pub use consumer_protection::AbusiveClause;
pub use consumer_protection::AbusiveClauseType;
pub use consumer_protection::CdcError;
pub use consumer_protection::CdcResult;
pub use consumer_protection::Consumer;
pub use consumer_protection::ConsumerCompliance;
pub use consumer_protection::ConsumerContract;
pub use consumer_protection::ConsumerRight;
pub use consumer_protection::ContractType;
pub use consumer_protection::Product;
pub use consumer_protection::ProductDefect;
pub use consumer_protection::Provider;
pub use consumer_protection::ProviderLiability;
pub use consumer_protection::Recall;
pub use consumer_protection::WithdrawalRight;
pub use data_protection::DataSubjectRight;
pub use data_protection::LegalBasis;
pub use data_protection::LgpdCompliance;
pub use data_protection::LgpdError;
pub use data_protection::LgpdResult;
pub use data_protection::PersonalDataProcessing;
pub use data_protection::ProcessingPurpose;
pub use data_protection::SecurityIncident;
pub use labor_law::CltError;
pub use labor_law::CltResult;
pub use labor_law::EmploymentContract;
pub use labor_law::EmploymentType;
pub use labor_law::LaborCompliance;
pub use labor_law::LaborRight;
pub use labor_law::Severance;
pub use labor_law::TerminationType;
pub use labor_law::WorkingHours;
pub use civil_code::CivilCodeError;
pub use civil_code::CivilCodeResult;
pub use civil_code::Contract;
pub use civil_code::ContractError;
pub use civil_code::ContractResult;
pub use civil_code::FamilyError;
pub use civil_code::FamilyResult;
pub use civil_code::Inheritance;
pub use civil_code::LegalAct;
pub use civil_code::LegalActType;
pub use civil_code::LegalPerson;
pub use civil_code::LegalPersonType;
pub use civil_code::Marriage;
pub use civil_code::NaturalPerson;
pub use civil_code::Obligation;
pub use civil_code::ObligationType;
pub use civil_code::ObligationsError;
pub use civil_code::ObligationsResult;
pub use civil_code::Ownership;
pub use civil_code::Possession;
pub use civil_code::PossessionType;
pub use civil_code::PropertyError;
pub use civil_code::PropertyKind;
pub use civil_code::PropertyRegime;
pub use civil_code::PropertyResult;
pub use civil_code::StableUnion;
pub use civil_code::SuccessionError;
pub use civil_code::SuccessionResult;
pub use civil_code::SuccessionType;
pub use criminal_code::Crime;
pub use criminal_code::CrimeCategory;
pub use criminal_code::CriminalCodeError;
pub use criminal_code::CriminalCodeResult;
pub use criminal_code::CriminalProcedure;
pub use criminal_code::Penalty;
pub use criminal_code::PenaltyType;
pub use tax_law::IcmsError;
pub use tax_law::IcmsResult;
pub use tax_law::IcmsTransaction;
pub use tax_law::IpiError;
pub use tax_law::IpiResult;
pub use tax_law::IpiTransaction;
pub use tax_law::IrpfCalculation;
pub use tax_law::IrpfError;
pub use tax_law::IrpfResult;
pub use tax_law::IrpjCalculation;
pub use tax_law::IrpjError;
pub use tax_law::IrpjResult;
pub use tax_law::IssError;
pub use tax_law::IssResult;
pub use tax_law::IssTransaction;
pub use tax_law::TaxError;
pub use tax_law::TaxResult;
pub use corporate_law::Corporation;
pub use corporate_law::CorporationType;
pub use corporate_law::CorporationsError;
pub use corporate_law::CorporationsResult;
pub use corporate_law::CvmError;
pub use corporate_law::CvmResult;
pub use corporate_law::LimitedLiabilityCompany;
pub use corporate_law::LimitedLiabilityError;
pub use corporate_law::LimitedLiabilityResult;
pub use corporate_law::Partner;
pub use corporate_law::PublicOffering;
pub use corporate_law::Security;
pub use corporate_law::SecurityType;
pub use bankruptcy_law::BankruptcyError;
pub use bankruptcy_law::BankruptcyResult;
pub use bankruptcy_law::CreditClass;
pub use bankruptcy_law::Creditor;
pub use bankruptcy_law::InsolvencyProceeding;
pub use bankruptcy_law::ProceedingType;
pub use bankruptcy_law::ReorganizationPlan;
pub use intellectual_property::IntellectualProperty;
pub use intellectual_property::IpError;
pub use intellectual_property::IpResult;
pub use intellectual_property::IpType;
pub use intellectual_property::PatentabilityCheck;
pub use intellectual_property::TrademarkType;
pub use environmental_law::EnvironmentalError;
pub use environmental_law::EnvironmentalLicense;
pub use environmental_law::EnvironmentalResult;
pub use environmental_law::ForestReserve;
pub use environmental_law::LicenseType;
pub use banking_law::BankingError;
pub use banking_law::BankingOperation;
pub use banking_law::BankingResult;
pub use banking_law::FinancialInstitution;
pub use banking_law::InstitutionType;
pub use banking_law::OperationType;

Modules§

banking_law
Banking Law - Direito Bancário
bankruptcy_law
Bankruptcy Law - Lei de Falências e Recuperação de Empresas
citation
Brazilian Legal Citation Format
civil_code
Civil Code - Código Civil (Lei nº 10.406/2002)
common
Common Brazilian legal types and utilities
consumer_protection
Consumer Protection - CDC (Código de Defesa do Consumidor)
corporate_law
Corporate Law - Direito Societário
criminal_code
Criminal Code - Código Penal (Decreto-Lei nº 2.848/1940)
data_protection
Data Protection - LGPD (Lei Geral de Proteção de Dados)
environmental_law
Environmental Law - Direito Ambiental
intellectual_property
Intellectual Property Law - Propriedade Industrial
labor_law
Labor Law - CLT (Consolidação das Leis do Trabalho)
tax_law
Tax Law - Direito Tributário