Skip to main content

Crate legalis_in

Crate legalis_in 

Source
Expand description

§India Jurisdiction - Legalis-RS

Comprehensive modeling of Indian law for the Legalis legal reasoning framework.

India has a common law legal system inherited from British rule, with a written constitution that is the supreme law of the land. The legal system features a three-tier court structure: Supreme Court, High Courts, and subordinate courts.

§Key Characteristics

  • Constitution: Constitution of India, 1950 (longest written constitution)
  • Legal Tradition: Common Law with statutory modifications
  • Court System: Supreme Court → High Courts → District Courts
  • Languages: English (official for courts), Hindi (national)
  • Citation Formats: AIR, SCC, SCR, High Court citations

§Module Coverage

§Data Protection

The data_protection module implements India’s Digital Personal Data Protection Act, 2023 (DPDPA), which came into effect in 2024.

Key Concepts:

  • Data Principal (individual whose data is processed)
  • Data Fiduciary (entity determining purpose of processing)
  • Significant Data Fiduciary (SDF) with additional obligations
  • Consent Manager (registered consent facilitator)
use legalis_in::data_protection::*;
use chrono::NaiveDate;

// Validate SDF compliance
let fiduciary = DataFiduciary {
    registration_number: Some("REG001".to_string()),
    name: "TechCorp India".to_string(),
    category: DataFiduciaryCategory::Significant,
    principal_place: "Bengaluru".to_string(),
    contact_email: "privacy@techcorp.in".to_string(),
    dpo: Some(DataProtectionOfficer {
        name: "Rahul Sharma".to_string(),
        designation: "Chief Privacy Officer".to_string(),
        contact_email: "dpo@techcorp.in".to_string(),
        phone: "+91-9876543210".to_string(),
        based_in_india: true,
        appointment_date: NaiveDate::from_ymd_opt(2024, 1, 1).unwrap(),
    }),
    consent_manager: None,
    registration_date: Some(NaiveDate::from_ymd_opt(2024, 1, 1).unwrap()),
};

let report = validate_fiduciary_compliance(&fiduciary);
assert!(report.compliant);

§Citation System

The citation module provides Indian legal citation formatting:

use legalis_in::citation::{Citation, cite};

// Statutory citation
let dpdpa_cite = cite::dpdpa(4);
assert_eq!(dpdpa_cite.format(), "Digital Personal Data Protection Act, 2023, s. 4");

// Supreme Court AIR citation
let sc_cite = cite::air_sc(2024, 1234);
assert_eq!(sc_cite.format(), "AIR 2024 SC 1234");

// SCC citation
let scc_cite = Citation::scc(2024, 5, 789);
assert_eq!(scc_cite.format(), "(2024) 5 SCC 789");

§Currency Formatting

The common module provides Indian currency formatting with lakhs and crores:

use legalis_in::common::{InrAmount, format_inr, to_lakhs, to_crores};

let amount = InrAmount::new(25000000.0); // 2.5 crore
assert_eq!(amount.format(), "₹2,50,00,000");
assert_eq!(to_crores(25000000.0), 2.5);

let lakhs_amount = InrAmount::new(500000.0); // 5 lakhs
assert_eq!(lakhs_amount.format_lakhs(), "₹5.00 lakhs");
DomainPrimary LegislationModule
Data ProtectionDPDPA 2023data_protection
CompaniesCompanies Act 2013companies
ContractsIndian Contract Act 1872contract
IT/CyberIT Act 2000Planned
GSTCGST Act 2017Planned
LabourLabour Codes 2020Planned
CriminalBNS 2023Planned
ConstitutionConstitution of IndiaPlanned

§DPDPA Penalty Structure (Section 33)

TierMaximum PenaltyViolations
PrincipalRs. 10,000Data principal duty breaches
Tier 1Rs. 50 croreSecurity safeguard failures
Tier 2Rs. 200 croreBreach notification, child data
Tier 3Rs. 250 croreProcessing without lawful grounds

§Data Principal Rights (Chapter III, DPDPA)

RightSectionDescription
Access11Summary of personal data and processing
Correction12Correct inaccurate/misleading data
Erasure12Erase data no longer necessary
Grievance13Redressal mechanism
Nomination14Nominate for incapacity/death

§Indian Number System

India uses a unique numbering system for large amounts:

TermValueExample
Lakh (लाख)1,00,000Rs. 5 lakhs = Rs. 5,00,000
Crore (करोड़)1,00,00,000Rs. 2 crore = Rs. 2,00,00,000
Arab (अरब)1,00,00,00,000Rs. 1 arab = Rs. 100 crore

§Court Hierarchy

Supreme Court of India (Article 124-147)
       │
       ├── 25 High Courts (Article 214-231)
       │       │
       │       ├── District Courts (Article 233-237)
       │       │       │
       │       │       └── Subordinate Courts
       │       │
       │       └── Family Courts, Labour Courts, Consumer Forums
       │
       └── Tribunals (SAT, CAT, NCLT, NCLAT, etc.)

§References

Re-exports§

pub use citation::Citation;
pub use citation::CitationType;
pub use citation::Court;
pub use citation::acts;
pub use citation::cite;
pub use common::Address;
pub use common::DeadlineType;
pub use common::FinancialYear;
pub use common::IndianName;
pub use common::IndianNameFormatter;
pub use common::InrAmount;
pub use common::NationalHoliday;
pub use common::State;
pub use common::Title;
pub use common::business_days_between;
pub use common::calculate_deadline;
pub use common::crores_to_rupees;
pub use common::format_crores;
pub use common::format_inr;
pub use common::format_inr_precision;
pub use common::format_lakhs;
pub use common::is_national_holiday;
pub use common::is_weekend;
pub use common::is_working_day;
pub use common::lakhs_to_rupees;
pub use common::national_holidays_in_year;
pub use common::next_working_day;
pub use common::parse_inr;
pub use common::previous_working_day;
pub use common::to_crores;
pub use common::to_lakhs;
pub use common::working_days_between;
pub use data_protection::ChildDataProcessing;
pub use data_protection::ConsentManager;
pub use data_protection::ConsentRecord;
pub use data_protection::CrossBorderTransfer;
pub use data_protection::DataFiduciary;
pub use data_protection::DataFiduciaryCategory;
pub use data_protection::DataPrincipalDuty;
pub use data_protection::DataPrincipalRight;
pub use data_protection::DataProtectionOfficer;
pub use data_protection::DpdpaComplianceReport;
pub use data_protection::DpdpaError;
pub use data_protection::DpdpaResult;
pub use data_protection::LawfulPurpose;
pub use data_protection::LegitimateUseType;
pub use data_protection::PenaltyTier;
pub use data_protection::ProcessingRecord;
pub use data_protection::SdfCriteria;
pub use data_protection::check_sdf_status;
pub use data_protection::get_obligations;
pub use data_protection::get_principal_duties;
pub use data_protection::get_principal_rights;
pub use data_protection::validate_child_processing;
pub use data_protection::validate_cross_border_transfer;
pub use data_protection::validate_fiduciary_compliance;
pub use data_protection::validate_processing_record;
pub use data_protection::validate_retention;
pub use companies::AnnualFilingType;
pub use companies::Committee;
pub use companies::CommitteeType;
pub use companies::CompaniesActError;
pub use companies::CompaniesActResult;
pub use companies::Company;
pub use companies::CompanyStatus;
pub use companies::CompanyType;
pub use companies::ComplianceReport;
pub use companies::CsrCategory;
pub use companies::CsrObligation;
pub use companies::DinStatus;
pub use companies::Director;
pub use companies::DirectorCategory;
pub use companies::Kmp;
pub use companies::KmpType;
pub use companies::PenaltyInfo;
pub use companies::RelatedPartyTransactionType;
pub use companies::RelatedPartyType;
pub use companies::ResolutionType;
pub use companies::ShareCapitalType;
pub use companies::ShareClass;
pub use companies::Shareholder;
pub use companies::ShareholderCategory;
pub use companies::SpecialResolutionMatter;
pub use companies::calculate_filing_penalty;
pub use companies::check_filing_deadline;
pub use companies::get_compliance_checklist;
pub use companies::validate_agm;
pub use companies::validate_board_composition;
pub use companies::validate_board_meetings;
pub use companies::validate_buyback;
pub use companies::validate_committees;
pub use companies::validate_company_formation;
pub use companies::validate_csr_compliance;
pub use companies::validate_kmp_appointments;
pub use companies::validate_ordinary_resolution;
pub use companies::validate_resolution;
pub use contract::AgentAuthority;
pub use contract::AgentType;
pub use contract::BreachType;
pub use contract::ConsentVitiator;
pub use contract::Consideration;
pub use contract::ConsiderationTiming;
pub use contract::ConsiderationType;
pub use contract::ContingentContract;
pub use contract::Contract;
pub use contract::ContractActError;
pub use contract::ContractActResult;
pub use contract::ContractEssentials;
pub use contract::ContractParty;
pub use contract::ContractStatus;
pub use contract::ContractType;
pub use contract::ContractValidityReport;
pub use contract::DamagesType;
pub use contract::DischargeMode;
pub use contract::IncompetentParty;
pub use contract::LegalityCheck;
pub use contract::PartyType;
pub use contract::QuasiContractType;
pub use contract::Remedy;
pub use contract::VoidAgreementType;
pub use contract::calculate_damages;
pub use contract::check_frustration;
pub use contract::get_limitation_period as get_contract_limitation_period;
pub use contract::get_quasi_contract_obligation;
pub use contract::validate_agent_authority;
pub use contract::validate_consideration;
pub use contract::validate_contingent_contract;
pub use contract::validate_contract_formation;
pub use contract::validate_legality;
pub use contract::validate_liquidated_damages;
pub use contract::validate_performance;
pub use contract::validate_void_agreements;
pub use it_act::AdjudicatingOfficerPower;
pub use it_act::BailStatus;
pub use it_act::CaFunction;
pub use it_act::CatJurisdiction;
pub use it_act::ComputerOffence;
pub use it_act::ConsentRequirement;
pub use it_act::CyberCrimeCategory;
pub use it_act::DigitalCertificate;
pub use it_act::DigitalSignatureType;
pub use it_act::EcommerceModel;
pub use it_act::ElectronicRecord;
pub use it_act::ElectronicRecordType;
pub use it_act::IntermediaryComplianceCheck;
pub use it_act::IntermediaryType;
pub use it_act::ItActError;
pub use it_act::ItActResult;
pub use it_act::ItComplianceReport;
pub use it_act::NetworkProviderLiability;
pub use it_act::PenaltyInfo as ItPenaltyInfo;
pub use it_act::Punishment;
pub use it_act::SafeHarborConditions;
pub use it_act::SensitivePersonalData;
pub use it_act::calculate_section43_compensation;
pub use it_act::classify_cyber_crime;
pub use it_act::get_jurisdiction;
pub use it_act::get_limitation_period as get_cyber_limitation_period;
pub use it_act::validate_certificate;
pub use it_act::validate_data_protection_compliance;
pub use it_act::validate_ecommerce_compliance;
pub use it_act::validate_intermediary_compliance;
pub use it_act::validate_safe_harbor;
pub use it_act::validate_takedown_compliance;
pub use gst::BlockedItcReason;
pub use gst::CompensationCess;
pub use gst::CompositionBusinessType;
pub use gst::CompositionScheme;
pub use gst::EwayBill;
pub use gst::EwayDocType;
pub use gst::FilingStatus;
pub use gst::GstComplianceReport;
pub use gst::GstError;
pub use gst::GstRate;
pub use gst::GstRegistration;
pub use gst::GstResult;
pub use gst::GstState;
pub use gst::Gstin;
pub use gst::HsnSacCode;
pub use gst::HsnSacType;
pub use gst::InputTaxCredit;
pub use gst::Invoice;
pub use gst::InvoiceType;
pub use gst::ItcType;
pub use gst::ItcUtilization;
pub use gst::ItcUtilizationPlan;
pub use gst::ItcUtilizationStep;
pub use gst::NatureOfBusiness;
pub use gst::PenaltyInfo as GstPenaltyInfo;
pub use gst::PenaltyType as GstPenaltyType;
pub use gst::RefundType;
pub use gst::RegistrationStatus;
pub use gst::RegistrationType;
pub use gst::ReturnComplianceStatus;
pub use gst::ReturnStatus;
pub use gst::ReturnType;
pub use gst::ReverseCharge;
pub use gst::SupplyCategory;
pub use gst::SupplyType;
pub use gst::TaxLiability;
pub use gst::TaxpayerCategory;
pub use gst::TransportMode;
pub use gst::calculate_interest as calculate_gst_interest;
pub use gst::calculate_late_fee;
pub use gst::calculate_tax;
pub use gst::determine_supply_type;
pub use gst::get_return_due_date;
pub use gst::is_refund_within_time_limit;
pub use gst::validate_composition_eligibility;
pub use gst::validate_eway_bill_requirement;
pub use gst::validate_gst_compliance;
pub use gst::validate_gstin;
pub use gst::validate_invoice;
pub use gst::validate_itc_eligibility;
pub use gst::validate_itc_utilization;
pub use gst::validate_registration_requirement;
pub use gst::validate_return_filing;
pub use gst::validate_reverse_charge;
pub use labour_codes::Bonus;
pub use labour_codes::ComplianceChecklistItem;
pub use labour_codes::ContractLabour;
pub use labour_codes::ContractWorkNature;
pub use labour_codes::DeductionType;
pub use labour_codes::DisputeStage;
pub use labour_codes::DisputeType;
pub use labour_codes::EpfContribution;
pub use labour_codes::EsiContribution;
pub use labour_codes::EstablishmentType;
pub use labour_codes::GeographicalArea;
pub use labour_codes::GigWorker;
pub use labour_codes::Gratuity;
pub use labour_codes::IndustrialActionType;
pub use labour_codes::IndustrialDispute;
pub use labour_codes::InterStateMigrantWorker;
pub use labour_codes::LabourCodeError;
pub use labour_codes::LabourCodeResult;
pub use labour_codes::LabourComplianceCheck;
pub use labour_codes::LabourComplianceReport;
pub use labour_codes::LabourPenaltyInfo;
pub use labour_codes::Layoff;
pub use labour_codes::LayoffReason;
pub use labour_codes::LeaveProvisions;
pub use labour_codes::MaternityBenefit;
pub use labour_codes::MaternityBenefitType;
pub use labour_codes::MinimumWageFloor;
pub use labour_codes::Overtime;
pub use labour_codes::PaymentMode;
pub use labour_codes::PaymentPeriod;
pub use labour_codes::PlatformWorker;
pub use labour_codes::Retrenchment;
pub use labour_codes::SafetyCommittee;
pub use labour_codes::SkillLevel;
pub use labour_codes::SocialSecurityScheme;
pub use labour_codes::StandingOrders;
pub use labour_codes::StrikeLockout;
pub use labour_codes::TradeUnion;
pub use labour_codes::Wage;
pub use labour_codes::WageDeduction;
pub use labour_codes::WageExclusion;
pub use labour_codes::WagePayment;
pub use labour_codes::WeeklyOff;
pub use labour_codes::WorkerType;
pub use labour_codes::WorkingHours;
pub use labour_codes::calculate_gratuity;
pub use labour_codes::calculate_minimum_wage;
pub use labour_codes::get_compliance_checklist as get_labour_compliance_checklist;
pub use labour_codes::validate_bonus;
pub use labour_codes::validate_contract_labour;
pub use labour_codes::validate_deductions;
pub use labour_codes::validate_epf_compliance;
pub use labour_codes::validate_esi_compliance;
pub use labour_codes::validate_establishment_registration;
pub use labour_codes::validate_gratuity;
pub use labour_codes::validate_labour_compliance;
pub use labour_codes::validate_layoff;
pub use labour_codes::validate_leave;
pub use labour_codes::validate_maternity_benefit;
pub use labour_codes::validate_migrant_worker;
pub use labour_codes::validate_minimum_wage;
pub use labour_codes::validate_overtime;
pub use labour_codes::validate_retrenchment;
pub use labour_codes::validate_safety_committee;
pub use labour_codes::validate_standing_orders;
pub use labour_codes::validate_strike_lockout_notice;
pub use labour_codes::validate_trade_union;
pub use labour_codes::validate_wage_payment;
pub use labour_codes::validate_working_hours;
pub use criminal::Accused;
pub use criminal::BailStatus as CriminalBailStatus;
pub use criminal::BnsError;
pub use criminal::BnsPenaltyInfo;
pub use criminal::BnsResult;
pub use criminal::CaseStatus;
pub use criminal::CommunityService;
pub use criminal::CommunityWorkType;
pub use criminal::Court as CriminalCourt;
pub use criminal::CriminalCase;
pub use criminal::CriminalComplianceReport;
pub use criminal::EFir;
pub use criminal::FineType;
pub use criminal::ImprisonmentType;
pub use criminal::InvestigationStatus;
pub use criminal::LimitationPeriod;
pub use criminal::Offence;
pub use criminal::OffenceCategory;
pub use criminal::PleaBargaining;
pub use criminal::Punishment as CriminalPunishment;
pub use criminal::ZeroFir;
pub use criminal::calculate_statutory_bail_eligibility;
pub use criminal::get_applicable_court;
pub use criminal::get_limitation_period as get_criminal_limitation_period;
pub use criminal::get_punishment_for_offence;
pub use criminal::validate_arrest_procedure;
pub use criminal::validate_bail_status;
pub use criminal::validate_criminal_compliance;
pub use criminal::validate_fir_registration;
pub use criminal::validate_investigation_timeline;
pub use criminal::validate_juvenile_handling;
pub use criminal::validate_plea_bargaining;
pub use criminal::validate_police_remand;
pub use criminal::validate_sentencing;
pub use criminal::validate_trial_timeline;
pub use constitution::AmendmentProcedure;
pub use constitution::AmendmentVoteCheck;
pub use constitution::Article19Freedom;
pub use constitution::BasicStructure;
pub use constitution::ConstitutionPart;
pub use constitution::ConstitutionalAmendment;
pub use constitution::ConstitutionalComplianceReport;
pub use constitution::ConstitutionalCourt;
pub use constitution::ConstitutionalError;
pub use constitution::ConstitutionalResult;
pub use constitution::DirectivePrinciple;
pub use constitution::EmergencyType;
pub use constitution::FundamentalDuty;
pub use constitution::FundamentalRight;
pub use constitution::HouseVotes;
pub use constitution::Legislature;
pub use constitution::PilPetitionerType;
pub use constitution::PublicInterestLitigation;
pub use constitution::Schedule7List;
pub use constitution::WritPetition;
pub use constitution::WritType;
pub use constitution::check_basic_structure_violation;
pub use constitution::get_appropriate_writ;
pub use constitution::get_constitutional_limitation;
pub use constitution::validate_amendment_procedure;
pub use constitution::validate_article19_restriction;
pub use constitution::validate_constitutional_compliance;
pub use constitution::validate_due_process;
pub use constitution::validate_emergency_proclamation;
pub use constitution::validate_equality;
pub use constitution::validate_fundamental_right_claim;
pub use constitution::validate_legislative_competence;
pub use constitution::validate_pil_maintainability;
pub use constitution::validate_writ_petition;
pub use civil_procedure_code::AppealStatus as CpcAppealStatus;
pub use civil_procedure_code::AppealType as CpcAppealType;
pub use civil_procedure_code::CivilSuit;
pub use civil_procedure_code::CourtFees;
pub use civil_procedure_code::CourtType as CpcCourtType;
pub use civil_procedure_code::CpcComplianceReport;
pub use civil_procedure_code::CpcError;
pub use civil_procedure_code::CpcResult;
pub use civil_procedure_code::ExecutionMode;
pub use civil_procedure_code::ExecutionProceeding;
pub use civil_procedure_code::ExecutionStatus;
pub use civil_procedure_code::JurisdictionBasis;
pub use civil_procedure_code::LimitationPeriod as CpcLimitationPeriod;
pub use civil_procedure_code::OrderType;
pub use civil_procedure_code::PecuniaryJurisdiction;
pub use civil_procedure_code::PleadingType;
pub use civil_procedure_code::SuitStatus;
pub use civil_procedure_code::SuitType;
pub use civil_procedure_code::calculate_appeal_court_fees;
pub use civil_procedure_code::calculate_days_between;
pub use civil_procedure_code::get_appeal_limitation as get_cpc_appeal_limitation;
pub use civil_procedure_code::get_pecuniary_jurisdiction;
pub use civil_procedure_code::is_order_appealable;
pub use civil_procedure_code::is_within_limitation as is_within_cpc_limitation;
pub use civil_procedure_code::validate_appeal_compliance as validate_cpc_appeal_compliance;
pub use civil_procedure_code::validate_execution_compliance;
pub use civil_procedure_code::validate_plaint;
pub use civil_procedure_code::validate_suit_compliance;
pub use civil_procedure_code::validate_territorial_jurisdiction;
pub use criminal_procedure_code::AppealType as CrpcAppealType;
pub use criminal_procedure_code::ArrestType;
pub use criminal_procedure_code::BailApplication;
pub use criminal_procedure_code::BailStatus as CrpcBailStatus;
pub use criminal_procedure_code::BailType;
pub use criminal_procedure_code::Chargesheet;
pub use criminal_procedure_code::CompoundableOffence;
pub use criminal_procedure_code::CriminalAppeal;
pub use criminal_procedure_code::CrpcComplianceReport;
pub use criminal_procedure_code::CrpcError;
pub use criminal_procedure_code::CrpcResult;
pub use criminal_procedure_code::InvestigationStage;
pub use criminal_procedure_code::PoliceRemand;
pub use criminal_procedure_code::TrialProceedings;
pub use criminal_procedure_code::TrialStage;
pub use criminal_procedure_code::Verdict;
pub use criminal_procedure_code::check_default_bail_eligibility;
pub use criminal_procedure_code::get_appeal_limitation_days as get_crpc_appeal_limitation_days;
pub use criminal_procedure_code::validate_appeal_limitation;
pub use criminal_procedure_code::validate_bail_application;
pub use criminal_procedure_code::validate_chargesheet_timing;
pub use evidence_act::Admissibility;
pub use evidence_act::BurdenOfProof;
pub use evidence_act::Evidence;
pub use evidence_act::EvidenceActError;
pub use evidence_act::EvidenceActResult;
pub use evidence_act::EvidenceComplianceReport;
pub use evidence_act::EvidenceType;
pub use evidence_act::Presumption;
pub use evidence_act::check_hearsay_exception;
pub use evidence_act::validate_electronic_evidence;
pub use evidence_act::validate_evidence_admissibility;
pub use arbitration_act::ArbitralAward;
pub use arbitration_act::ArbitrationAgreement;
pub use arbitration_act::ArbitrationType;
pub use arbitration_act::AwardType;
pub use insolvency_code::CorporateInsolvencyProcess;
pub use insolvency_code::Creditor;
pub use insolvency_code::CreditorType;
pub use insolvency_code::IbcStage;
pub use insolvency_code::InsolvencyProcessType;
pub use competition_law::AbuseOfDominance;
pub use competition_law::AntiCompetitiveAgreement;
pub use competition_law::AntiCompetitiveAgreementType;
pub use competition_law::CombinationNotification;
pub use environmental_law::EnvironmentalClearance;
pub use environmental_law::EnvironmentalClearanceType;
pub use environmental_law::PollutionControlCompliance;
pub use environmental_law::PollutionType;
pub use environmental_law::ProjectCategory;
pub use fema::AccountType as FemaAccountType;
pub use fema::FdiRoute;
pub use fema::FemaViolationType;
pub use fema::ForeignInvestment;
pub use fema::RemittanceTransaction;

Modules§

arbitration_act
Arbitration and Conciliation Act 1996
citation
Indian Legal Citation System
civil_procedure_code
Code of Civil Procedure (CPC) 1908
common
Common utilities for Indian legal system
companies
Companies Act 2013 Module
competition_law
Competition Act 2002
constitution
Constitution of India
contract
Indian Contract Act 1872 Module
criminal
Bharatiya Nyaya Sanhita (BNS) 2023 - Indian Criminal Law
criminal_procedure_code
Criminal Procedure Code (CrPC) 1973 / BNSS 2023
data_protection
Digital Personal Data Protection Act, 2023 Module
environmental_law
Environmental Protection Act 1986
evidence_act
Indian Evidence Act 1872 / Bharatiya Sakshya Adhiniyam (BSA) 2023
fema
Foreign Exchange Management Act (FEMA) 1999
gst
Goods and Services Tax (GST) Module
insolvency_code
Insolvency and Bankruptcy Code (IBC) 2016
intellectual_property
Intellectual Property Law
it_act
Information Technology Act 2000 Module
labour_codes
Labour Codes 2020 Module
securities_law
Securities Law