Skip to main content

Crate legalis_mx

Crate legalis_mx 

Source
Expand description

§Legalis-MX: Mexican Law Library

Comprehensive Mexican legal framework implementation in Pure Rust.

§Overview

Mexico operates under a Civil Law system, based on the Romano-Germanic tradition with influences from Spanish colonial law and French civil code.

This library provides validation, types, and utilities for key Mexican legislation:

DomainLawYearKey Provisions
CivilCódigo Civil Federal1928Persons, property, obligations, contracts
CriminalCódigo Penal Federal1931Criminal offenses and penalties
LaborLey Federal del Trabajo19708h/day, aguinaldo (15 days), vacations
TaxCódigo Fiscal de la Federación1981Tax obligations and procedures
Data ProtectionLFPDPPP2010ARCO rights, privacy notices
CorporateLGSM1934SA, SRL, and other company types
IPLey de Propiedad Industrial1991Patents, trademarks, designs
CompetitionLFCE2014Antitrust, market concentration

Mexican citations follow a specific format:

[Law Name], Artículo [article], fracción [fraction]

§Examples

use legalis_mx::citation::*;

// Federal Civil Code
let ccf = format_civil_code_citation(1792, None, None);
assert_eq!(ccf, "Código Civil Federal, Artículo 1792");

// Labor Law with fraction
let lft = format_labor_law_citation(61, None, Some(RomanNumeral::I));
assert_eq!(lft, "Ley Federal del Trabajo, Artículo 61, fracción I");

// Constitution
let const_cite = format_constitution_citation(123, Some('A'), Some(RomanNumeral::VI));
assert_eq!(
    const_cite,
    "Constitución Política de los Estados Unidos Mexicanos, Artículo 123, Apartado A, fracción VI"
);

§Currency: Mexican Peso (MXN)

use legalis_mx::common::MexicanCurrency;

let salary = MexicanCurrency::from_pesos(300); // Daily minimum wage
assert_eq!(salary.pesos(), 300);

let amount = MexicanCurrency::from_centavos(150050);
assert_eq!(amount.pesos(), 1500);
assert_eq!(amount.cents(), 50);

§Document Validation (RFC/CURP/NSS)

use legalis_mx::common::{validate_rfc, validate_curp, validate_nss};

// RFC - Tax ID (12-13 characters)
assert!(validate_rfc("XAXX010101000").is_ok());

// CURP - Population Registry ID (18 characters)
assert!(validate_curp("XAXX010101HDFRRL00").is_ok());

// NSS - Social Security Number (11 digits)
assert!(validate_nss("12345678901").is_ok());

§Mexican States

use legalis_mx::common::MexicanState;

let cdmx = MexicanState::CMX;
assert_eq!(cdmx.nombre_es(), "Ciudad de México");
assert_eq!(cdmx.region_es(), "Centro");

let nle = MexicanState::NLE;
assert_eq!(nle.nombre_es(), "Nuevo León");
assert_eq!(nle.region_es(), "Noreste");

§Civil Code

ProvisionDetails
Legal CapacityFull capacity at 18 years (Article 646)
ContractsConsent, lawful object, consideration (Article 1794)
PropertyOwnership, possession, usufruct

§Labor Law

ProvisionDetails
Working Hours8h/day maximum (Article 61)
Aguinaldo15 days minimum, paid before Dec 20 (Article 87)
Vacation12 days (1st year) + 25% premium (Articles 76, 80)
Profit SharingPTU - 10% of profits (Article 117)

§Tax Law

TaxRateDetails
ISR30% (corporate)Income tax
IVA16% (standard)Value added tax
IEPSVariableSpecial production tax

§Data Protection (LFPDPPP)

AspectDetails
ARCO RightsAccess, Rectification, Cancellation, Opposition
Privacy NoticeRequired for all data collection
ConsentExplicit consent for sensitive data

§Bilingual Support

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

use legalis_mx::common::MexicanState;

let state = MexicanState::JAL;
assert_eq!(state.nombre_es(), "Jalisco"); // Spanish (authoritative)

§Module Structure

§References

Re-exports§

pub use citation::MexicanCitation;
pub use citation::RomanNumeral;
pub use citation::format_civil_code_citation;
pub use citation::format_constitution_citation;
pub use citation::format_criminal_code_citation;
pub use citation::format_isr_citation;
pub use citation::format_iva_citation;
pub use citation::format_labor_law_citation;
pub use citation::format_lfce_citation;
pub use citation::format_lfpdppp_citation;
pub use citation::format_lgsm_citation;
pub use citation::format_tax_code_citation;
pub use citation::to_roman_numeral;
pub use common::DocumentError;
pub use common::DocumentType;
pub use common::FederalHoliday;
pub use common::MexicanCurrency;
pub use common::MexicanDate;
pub use common::MexicanDocument;
pub use common::MexicanState;
pub use common::Municipality;
pub use common::get_federal_holidays;
pub use common::is_federal_holiday;
pub use common::minimum_wage;
pub use common::uma;
pub use common::validate_curp;
pub use common::validate_nss;
pub use common::validate_rfc;
pub use civil_code::Breach;
pub use civil_code::BreachType;
pub use civil_code::ConsentDefect;
pub use civil_code::Contract;
pub use civil_code::ContractError;
pub use civil_code::ContractType;
pub use civil_code::DoObligation;
pub use civil_code::EntityType;
pub use civil_code::GiveObligation;
pub use civil_code::ImmovableProperty;
pub use civil_code::JuridicalPerson;
pub use civil_code::LegalCapacity;
pub use civil_code::MovableProperty;
pub use civil_code::NaturalPerson;
pub use civil_code::NotDoObligation;
pub use civil_code::ObligationError;
pub use civil_code::ObligationSource;
pub use civil_code::ObligationType;
pub use civil_code::OwnershipType;
pub use civil_code::Party;
pub use civil_code::PartyRole;
pub use civil_code::PerformanceStatus;
pub use civil_code::PersonError;
pub use civil_code::PersonType;
pub use civil_code::PropertyError;
pub use civil_code::PropertyRight;
pub use civil_code::PropertyType;
pub use civil_code::RightType;
pub use civil_code::Term;
pub use civil_code::ValidityRequirements;
pub use criminal_code::CriminalError;
pub use criminal_code::CriminalOffense;
pub use criminal_code::CriminalResponsibility;
pub use criminal_code::OffenseClassification;
pub use criminal_code::PenaltyRange;
pub use labor_law::EmploymentContract;
pub use labor_law::EmploymentType;
pub use labor_law::LaborRight;
pub use labor_law::LaborValidationError;
pub use labor_law::MINIMUM_DAYS;
pub use labor_law::VACATION_PREMIUM_PERCENT;
pub use labor_law::WorkDayType;
pub use labor_law::WorkSchedule;
pub use labor_law::WorkingHoursError;
pub use labor_law::calculate_aguinaldo;
pub use labor_law::calculate_overtime;
pub use labor_law::calculate_proportional;
pub use labor_law::calculate_total_vacation_compensation;
pub use labor_law::calculate_vacation_premium;
pub use labor_law::get_vacation_days;
pub use labor_law::limits;
pub use labor_law::validate_employment_contract;
pub use labor_law::validate_schedule;
pub use tax_law::BORDER_RATE;
pub use tax_law::CORPORATE_TAX_RATE;
pub use tax_law::IEPSCategory;
pub use tax_law::IVARate;
pub use tax_law::STANDARD_RATE;
pub use tax_law::TAX_BRACKETS;
pub use tax_law::TaxObligation;
pub use tax_law::TaxPeriod;
pub use tax_law::TaxType;
pub use tax_law::TaxValidationError;
pub use tax_law::Taxpayer;
pub use tax_law::TaxpayerType;
pub use tax_law::ZERO_RATE;
pub use tax_law::calculate_corporate_isr;
pub use tax_law::calculate_ieps;
pub use tax_law::calculate_individual_isr;
pub use tax_law::calculate_iva;
pub use tax_law::calculate_sugary_drinks_ieps;
pub use tax_law::calculate_with_iva;
pub use tax_law::extract_iva_from_total;
pub use tax_law::validate_taxpayer;
pub use data_protection::ARCORight;
pub use data_protection::DataCategory;
pub use data_protection::DataProtectionError;
pub use data_protection::DataSubject;
pub use data_protection::LegalBasis;
pub use data_protection::PersonalDataProcessing;
pub use data_protection::PrivacyNotice;
pub use company_law::CompanyError;
pub use company_law::CompanyType;
pub use company_law::GovernanceRequirements;
pub use company_law::LimitedLiabilityCompany;
pub use company_law::StockCorporation;
pub use company_law::VariableCapitalCompany;
pub use intellectual_property::Copyright;
pub use intellectual_property::IPError;
pub use intellectual_property::IPType;
pub use intellectual_property::IndustrialDesign;
pub use intellectual_property::Patent;
pub use intellectual_property::PatentType;
pub use intellectual_property::Trademark;
pub use intellectual_property::TrademarkType;
pub use intellectual_property::WorkType;
pub use intellectual_property::protection_duration;
pub use competition_law::AbsolutePractice;
pub use competition_law::AnticompetitivePractice;
pub use competition_law::CompetitionError;
pub use competition_law::ConcentrationType;
pub use competition_law::MarketConcentration;
pub use competition_law::MarketParticipant;
pub use competition_law::RelativePractice;
pub use competition_law::thresholds;
pub use reasoning::InterpretationMethod;
pub use reasoning::LegalPrinciple;
pub use reasoning::LegalReasoning;
pub use reasoning::principles;

Modules§

citation
Mexican Legal Citation Format
civil_code
Federal Civil Code (Código Civil Federal)
common
Common Mexican legal utilities
company_law
Company Law (Ley General de Sociedades Mercantiles - LGSM)
competition_law
Federal Economic Competition Law (Ley Federal de Competencia Económica - LFCE)
criminal_code
Federal Criminal Code (Código Penal Federal)
data_protection
Data Protection Law (Ley Federal de Protección de Datos Personales en Posesión de los Particulares - LFPDPPP)
intellectual_property
Intellectual Property Law
labor_law
Federal Labor Law (Ley Federal del Trabajo)
reasoning
Legal reasoning and interpretation for Mexican law
tax_law
Tax Law (Código Fiscal de la Federación and related laws)