legalis-eu

Crates.iolegalis-eu
lib.rslegalis-eu
version0.1.3
created_at2026-01-10 14:24:53.022859+00
updated_at2026-01-21 04:39:33.308421+00
descriptionEuropean Union jurisdiction support for Legalis-RS (GDPR, Consumer Rights, Competition, Treaties)
homepagehttps://github.com/cool-japan/legalis
repositoryhttps://github.com/cool-japan/legalis
max_upload_size
id2034266
size1,465,946
KitaSan (cool-japan)

documentation

https://docs.rs/legalis-eu

README

legalis-eu

Type-safe EU law validation for Rust ๐Ÿ‡ช๐Ÿ‡บ

European Union jurisdiction support for Legalis-RS, providing comprehensive modeling of EU law including GDPR, Consumer Rights, Competition Law, Treaty Framework, and Intellectual Property.

Build Status Tests Warnings Performance

Quick Links

๐Ÿ“– Quick Start Guide โ€ข ๐Ÿ“˜ GDPR Guide โ€ข ๐ŸŽจ IP Guide โ€ข โ“ FAQ โ€ข ๐Ÿค Contributing

Table of Contents

Quick Start

use legalis_eu::gdpr::*;

// Validate GDPR data processing
let processing = DataProcessing::new()
    .with_controller("My Company")
    .with_purpose("Marketing emails")
    .add_data_category(PersonalDataCategory::Regular("email".into()))
    .with_lawful_basis(LawfulBasis::Consent {
        freely_given: true,
        specific: true,
        informed: true,
        unambiguous: true,
    });

match processing.validate() {
    Ok(validation) if validation.is_compliant() => {
        println!("โœ… GDPR compliant!");
    }
    Err(e) => eprintln!("โŒ Error: {}", e),
    _ => {}
}

See the Quick Start Guide for more examples.

Installation

Add to your Cargo.toml:

[dependencies]
legalis-eu = "0.5.9"
chrono = "0.4"  # Required for date/time handling

Or use cargo:

cargo add legalis-eu chrono

Status

Current Version: v0.5.9 - Core Implementation Complete โœ…

  • โœ… 196 tests passing (173 unit + 11 property + 12 i18n tests, 0 warnings)
  • โœ… 25 comprehensive examples
  • โœ… Internationalized error messages (11 EU languages: EN, DE, FR, ES, IT, PL, NL, PT, SV, CS, EL)
  • โœ… JSON Schema generation support
  • โœ… Full GDPR implementation (Articles 6-49, 83)
  • โœ… Consumer Rights Directive 2011/83/EU
  • โœ… Competition Law (Articles 101-102 TFEU)
  • โœ… Treaty Framework (Four Freedoms, Charter, CJEU cases)
  • โœ… Intellectual Property Law (Trademark, Design, Copyright, Trade Secrets)

Implementation Status

Phase 1 (GDPR Foundation): โœ… COMPLETE

  • Articles 6, 9, 15-22, 24-26, 28, 30, 32-36, 37-39, 44-49, 83
  • Data processing, security, DPO, DPIA, cross-border transfers, fines

Phase 2 (GDPR Extensions): โœ… COMPLETE

  • Article 25 (Data Protection by Design & Default)
  • Article 35-36 (DPIA and Prior Consultation)
  • Article 28 (Processor Contracts)
  • Cross-border transfers (Chapter V)

Phase 3 (Consumer Rights): โœ… COMPLETE

  • Articles 6, 9-17 of Directive 2011/83/EU
  • 14-day withdrawal right with exceptions

Phase 4 (Competition Law): โœ… COMPLETE

  • Article 101 TFEU (Anti-competitive agreements)
  • Article 102 TFEU (Abuse of dominance)

Phase 5 (Treaty Framework): โœ… COMPLETE

  • Four Freedoms (Articles 28-66 TFEU)
  • Charter of Fundamental Rights
  • CJEU landmark cases

Features

Internationalized Error Messages โœจ NEW

Get GDPR compliance error messages in 11 EU languages:

use legalis_eu::gdpr::error::GdprError;

let error = GdprError::MissingLawfulBasis;

println!("๐Ÿ‡ฌ๐Ÿ‡ง {}", error.message("en"));  // English
println!("๐Ÿ‡ฉ๐Ÿ‡ช {}", error.message("de"));  // German (DSGVO)
println!("๐Ÿ‡ซ๐Ÿ‡ท {}", error.message("fr"));  // French (RGPD)
println!("๐Ÿ‡ช๐Ÿ‡ธ {}", error.message("es"));  // Spanish (RGPD)
println!("๐Ÿ‡ฎ๐Ÿ‡น {}", error.message("it"));  // Italian
println!("๐Ÿ‡ต๐Ÿ‡ฑ {}", error.message("pl"));  // Polish (RODO)
// ... and 5 more languages

Supported Languages (11 total):

  • English (EN) - GDPR (default/fallback)
  • German (DE) - Datenschutz-Grundverordnung (DSGVO)
  • French (FR) - Rรจglement Gรฉnรฉral sur la Protection des Donnรฉes (RGPD)
  • Spanish (ES) - Reglamento General de Protecciรณn de Datos (RGPD)
  • Italian (IT) - Regolamento Generale sulla Protezione dei Dati (GDPR)
  • Polish (PL) - Ogรณlne Rozporzฤ…dzenie o Ochronie Danych (RODO)
  • Dutch (NL) - Algemene Verordening Gegevensbescherming (AVG)
  • Portuguese (PT) - Regulamento Geral sobre a Proteรงรฃo de Dados (RGPD)
  • Swedish (SV) - Dataskyddsfรถrordningen (GDPR)
  • Czech (CS) - Obecnรฉ naล™รญzenรญ o ochranฤ› osobnรญch รบdajลฏ (GDPR)
  • Greek (EL) - ฮ“ฮตฮฝฮนฮบฯŒฯ‚ ฮšฮฑฮฝฮฟฮฝฮนฯƒฮผฯŒฯ‚ ฮณฮนฮฑ ฯ„ฮทฮฝ ฮ ฯฮฟฯƒฯ„ฮฑฯƒฮฏฮฑ ฮ”ฮตฮดฮฟฮผฮญฮฝฯ‰ฮฝ (GDPR)

Coverage:

  • These 11 languages cover ~420 million EU citizens
  • Major markets (DE, FR, ES, IT, PL, NL) represent ~80% of EU GDP
  • Covers 11 of the 24 official EU languages

Benefits:

  • Better user experience for EU multilingual applications
  • Compliance with language accessibility requirements
  • Easy API integration with client language preferences
  • Automatic fallback to English for unsupported languages
  • Official GDPR terminology in each language

See examples/gdpr_i18n_errors.rs for complete example.

JSON Schema Generation

Export GDPR types as JSON schemas for API documentation and validation:

use schemars::schema_for;
use legalis_eu::gdpr::types::LawfulBasis;

let schema = schema_for!(LawfulBasis);
println!("{}", serde_json::to_string_pretty(&schema).unwrap());

Use Cases:

  • OpenAPI/Swagger API documentation
  • TypeScript/Python client code generation
  • Request/response validation in web frameworks
  • Form generation for UIs
  • Configuration file validation

Enable with features: --features schema,serde

See examples/gdpr_schema_generation.rs for complete example.

Intellectual Property Law

Implementation of EU IP regulations:

EU Trademark Regulation (EU) 2017/1001

  • โœ… European Union Trademark (EUTM) registration validation
  • โœ… Nice Classification (Classes 1-45)
  • โœ… Distinctiveness requirements (Article 7)
  • โœ… Absolute grounds for refusal
  • โœ… Descriptive marks and secondary meaning
  • โœ… Generic mark detection

Community Design Regulation (EC) No 6/2002

  • โœ… Registered Community Design (RCD)
  • โœ… Unregistered Community Design (UCD)
  • โœ… Novelty and individual character assessment

Copyright Directives

  • โœ… InfoSoc Directive 2001/29/EC structure
  • โœ… DSM Directive (EU) 2019/790 structure
  • โœ… Software Directive 2009/24/EC structure
  • โœ… Database Directive 96/9/EC structure

Trade Secrets Directive (EU) 2016/943

  • โœ… Trade secret protection validation
  • โœ… Three-part test (secret, commercial value, reasonable steps)

GDPR Implementation (Regulation 2016/679)

Comprehensive implementation of the General Data Protection Regulation:

Core Processing (Articles 6-9)

  • โœ… Article 6: All 6 lawful bases (consent, contract, legal obligation, vital interests, public task, legitimate interests)
  • โœ… Article 7: Consent conditions validation
  • โœ… Article 9: Special categories with all 10 exceptions

Data Subject Rights (Articles 15-22)

  • โœ… Article 15: Right of access
  • โœ… Article 16: Right to rectification
  • โœ… Article 17: Right to erasure ("right to be forgotten")
  • โœ… Article 18: Right to restriction of processing
  • โœ… Article 20: Right to data portability
  • โœ… Article 21: Right to object
  • โœ… Article 22: Automated decision-making rights

Accountability & Governance (Articles 24-26, 28, 30, 37-39)

  • โœ… Article 24: Controller accountability framework
  • โœ… Article 25: Data Protection by Design & Default (DPBD)
  • โœ… Article 26: Joint controllers
  • โœ… Article 28: Processor contracts (all mandatory clauses)
  • โœ… Article 30: Records of Processing Activities (ROPA)
  • โœ… Article 37-39: Data Protection Officer (DPO) requirements

Security & Breach (Articles 32-36)

  • โœ… Article 32: Security of processing (technical & organizational measures)
  • โœ… Article 33-34: Data breach notification (72-hour rule)
  • โœ… Article 35: Data Protection Impact Assessment (DPIA)
  • โœ… Article 36: Prior consultation with supervisory authority

Cross-Border Transfers (Chapter V, Articles 44-49)

  • โœ… Article 45: Adequacy decisions (14 adequate countries)
  • โœ… Article 46: Appropriate safeguards (SCCs, BCRs, certifications)
  • โœ… Article 49: Derogations for specific situations
  • โœ… Schrems II: Transfer Impact Assessment for high-risk destinations

Penalties (Article 83)

  • โœ… Article 83: Administrative fines calculation (up to โ‚ฌ20M or 4% global turnover)

Consumer Rights Directive (2011/83/EU)

Implementation of EU consumer protection law:

  • โœ… Article 6: Information requirements for distance/off-premises contracts
  • โœ… Articles 9-16: Right of withdrawal (14 days, extended to 12 months if info missing)
  • โœ… Article 17: All 13 exceptions to withdrawal right

Competition Law (Articles 101-102 TFEU)

Implementation of EU competition rules:

Article 101 - Anti-competitive Agreements

  • โœ… Hardcore restrictions (price-fixing, market-sharing)
  • โœ… De minimis test (10% threshold for horizontal agreements)
  • โœ… Article 101(3) exemption criteria (all 4 required)
  • โœ… Information exchange detection

Article 102 - Abuse of Dominant Position

  • โœ… Dominance assessment (>40% market share threshold)
  • โœ… Exploitative abuse (excessive pricing, limiting production)
  • โœ… Exclusionary abuse (predatory pricing, refusal to deal, tying, margin squeeze)

Treaty Framework

Foundational EU law structures:

Four Freedoms (Articles 28-66 TFEU)

  • โœ… Free movement of goods (Article 34)
  • โœ… Free movement of persons (Article 45)
  • โœ… Freedom to provide services (Article 56)
  • โœ… Free movement of capital (Article 63)

Charter of Fundamental Rights

  • โœ… Article 7: Privacy
  • โœ… Article 8: Data protection
  • โœ… Article 11: Freedom of expression
  • โœ… Article 16: Freedom to conduct business
  • โœ… Article 47: Effective remedy

CJEU Landmark Cases

  • โœ… Van Gend en Loos (C-26/62) - Direct effect
  • โœ… Costa v ENEL (C-6/64) - Supremacy
  • โœ… Cassis de Dijon (C-120/78) - Mutual recognition
  • โœ… Francovich (C-6/90, C-9/90) - State liability

Usage Examples

GDPR Data Processing Validation

use legalis_eu::gdpr::*;

let processing = DataProcessing::new()
    .with_controller("Acme Corp")
    .with_purpose("Marketing emails")
    .add_data_category(PersonalDataCategory::Regular("email".to_string()))
    .with_lawful_basis(LawfulBasis::Consent {
        freely_given: true,
        specific: true,
        informed: true,
        unambiguous: true,
    });

match processing.validate() {
    Ok(validation) => {
        if validation.is_compliant() {
            println!("โœ… Processing is GDPR compliant");
        }
    }
    Err(e) => println!("โŒ Error: {}", e),
}

Cross-Border Transfer Validation

use legalis_eu::gdpr::cross_border::*;

let transfer = CrossBorderTransfer::new()
    .with_origin("EU")
    .with_destination_country("US")
    .with_safeguard(TransferSafeguard::StandardContractualClauses {
        version: "2021".to_string(),
        clauses_signed: true,
    });

match transfer.validate() {
    Ok(validation) => {
        if validation.risk_assessment_required {
            println!("โš ๏ธ Transfer Impact Assessment required (Schrems II)");
        }
    }
    Err(e) => println!("โŒ Transfer not permitted: {}", e),
}

Consumer Withdrawal Right

use legalis_eu::consumer_rights::*;
use chrono::Utc;

let contract = DistanceContract::new()
    .with_trader("Online Shop Ltd")
    .with_consumer("John Doe")
    .with_contract_date(Utc::now())
    .with_goods_description("Laptop computer");

match contract.calculate_withdrawal_period() {
    Ok(period) => {
        println!("Withdrawal deadline: {}", period.deadline);
        println!("Days remaining: {}", period.days_remaining);
    }
    Err(e) => println!("Error: {}", e),
}

Competition Law Analysis

use legalis_eu::competition::*;

let agreement = Article101Agreement::new()
    .with_undertaking("Company A")
    .with_undertaking("Company B")
    .with_agreement_type(AgreementType::Horizontal)
    .add_restriction(Restriction::PriceFixing {
        agreed_price: 100.0,
    });

match agreement.validate() {
    Ok(validation) => {
        if validation.hardcore_restriction {
            println!("โŒ Hardcore restriction - per se illegal");
        }
    }
    Err(e) => println!("Error: {}", e),
}

Multi-Language Support

Supports 11 major EU languages (extensible to all 24 official EU languages):

use legalis_eu::i18n::MultilingualText;

let text = MultilingualText::new("Data Controller")
    .with_de("Verantwortlicher")
    .with_fr("Responsable du traitement")
    .with_es("Responsable del tratamiento")
    .with_it("Titolare del trattamento")
    .with_pl("Administrator danych")
    .with_nl("Verwerkingsverantwoordelijke")
    .with_pt("Responsรกvel pelo tratamento")
    .with_sv("Personuppgiftsansvarig")
    .with_cs("Sprรกvce")
    .with_el("ฮฅฯ€ฮตฯฮธฯ…ฮฝฮฟฯ‚ ฮตฯ€ฮตฮพฮตฯฮณฮฑฯƒฮฏฮฑฯ‚")
    .with_source("CELEX:32016R0679");

assert_eq!(text.in_language("en"), "Data Controller");
assert_eq!(text.in_language("de"), "Verantwortlicher");
assert_eq!(text.in_language("pl"), "Administrator danych");
assert_eq!(text.in_language("ja"), "Data Controller"); // Fallback to EN

EUR-Lex Citation System

Proper citation handling with CELEX identifiers:

use legalis_eu::citation::EuCitation;

let gdpr = EuCitation::regulation(2016, 679).with_article(6);
assert_eq!(gdpr.format_for_language("en"), "Art. 6 GDPR");
assert_eq!(gdpr.format_for_language("de"), "Art. 6 DSGVO");

Documentation

Comprehensive guides are available in the docs/ directory:

๐Ÿ“– Getting Started

  • Quick Start Guide - Get up and running in 5 minutes
    • Installation
    • First GDPR validation
    • First IP validation
    • Common patterns
    • Next steps

๐Ÿ“˜ In-Depth Guides

  • GDPR Guide - Complete GDPR implementation guide

    • All 6 lawful bases explained
    • Special categories handling
    • Data subject rights
    • Security and breach notification
    • Cross-border transfers
    • Accountability (DPIA, DPO, etc.)
    • Complete examples
  • Intellectual Property Guide - EU IP protection guide

    • EU Trademarks (EUTM)
    • Community Designs (RCD/UCD)
    • Copyright (InfoSoc, DSM, Software directives)
    • Trade Secrets
    • Layered IP strategy

โ“ Reference

  • FAQ - Frequently Asked Questions
    • General questions
    • GDPR questions
    • IP questions
    • Performance questions
    • Troubleshooting

๐Ÿค For Contributors

  • Contributing Guide - How to contribute
    • Code of conduct
    • Development setup
    • Coding standards
    • Testing requirements
    • Submission guidelines

๐Ÿ“š API Documentation

Generate and browse the full API documentation:

cargo doc --open

Examples

Run the 23 included examples to see all features in action:

# GDPR Core
cargo run --example gdpr_consent_validation
cargo run --example gdpr_article9_special_categories
cargo run --example gdpr_dsar_handling
cargo run --example gdpr_breach_notification

# GDPR Accountability
cargo run --example gdpr_article24_accountability
cargo run --example gdpr_article25_dpbd
cargo run --example gdpr_article26_joint_controllers
cargo run --example gdpr_processor_contract
cargo run --example gdpr_ropa

# GDPR Security & Risk
cargo run --example gdpr_security_article32
cargo run --example gdpr_dpia
cargo run --example gdpr_dpia_workflow
cargo run --example gdpr_dpo

# GDPR Transfers & Fines
cargo run --example gdpr_cross_border_transfers
cargo run --example gdpr_article83_fines

# GDPR Integration
cargo run --example gdpr_complete_compliance_workflow

# Consumer Rights
cargo run --example consumer_rights_withdrawal

# Competition Law
cargo run --example competition_article101_cartels
cargo run --example competition_article102_dominance

# Intellectual Property
cargo run --example ip_eu_trademark
cargo run --example ip_copyright
cargo run --example ip_trade_secrets
cargo run --example ip_comprehensive

Tests

Run the comprehensive test suite:

cargo test -p legalis-eu        # Standard tests
cargo nextest run -p legalis-eu # With nextest (recommended)

Benchmarks

Performance benchmarks for validation operations:

cargo bench --bench gdpr_validation  # GDPR validation benchmarks
cargo bench --bench ip_validation    # IP validation benchmarks

Baseline Performance (typical results):

GDPR Validation:

  • Consent validation: ~80ns per validation
  • Special category check: ~210ns per validation
  • Cross-border transfer: ~40ns per validation

IP Validation:

  • Trademark validation: ~97ns per validation
  • Design validation: ~80ns per validation
  • Copyright validation: ~57ns per validation
  • Trade secret validation: ~112ns per validation
  • Misappropriation analysis: ~84ns per analysis

These measurements demonstrate that the crate adds minimal overhead (sub-microsecond), making it suitable for high-performance applications.

Test Coverage: 196 tests passing:

  • 173 unit tests covering all modules
  • 11 property-based tests (proptest) for GDPR Article 6
  • 12 i18n tests for multilingual support (11 languages):
    • 8 error message translation tests
    • 4 MultilingualText structure tests
  • GDPR Article 6 (lawful bases)
  • GDPR Article 9 (special categories)
  • GDPR Article 24 (accountability)
  • GDPR Article 25 (DPBD)
  • GDPR Article 26 (joint controllers)
  • GDPR Article 28 (processor contracts)
  • GDPR Article 30 (ROPA)
  • GDPR Article 32 (security)
  • GDPR Article 35-36 (DPIA)
  • GDPR Article 37-39 (DPO)
  • GDPR Article 83 (fines)
  • GDPR Chapter V (cross-border transfers)
  • Data subject rights (Articles 15-22)
  • Breach notification (Articles 33-34)
  • Consumer Rights (withdrawal, exceptions)
  • Competition Law (Articles 101-102)
  • Treaty Framework (Four Freedoms, Charter, CJEU cases)
  • Intellectual Property (Trademark, Design, Copyright, Trade Secrets)
  • I18n support
  • Citation system
  • Member states registry

Architecture

Module Structure

src/
โ”œโ”€โ”€ lib.rs                      # Main module with documentation
โ”œโ”€โ”€ i18n.rs                     # MultilingualText (11 languages, extensible to 24)
โ”œโ”€โ”€ citation.rs                 # EUR-Lex/CELEX citation system
โ”œโ”€โ”€ gdpr/                       # GDPR implementation
โ”‚   โ”œโ”€โ”€ types.rs                # Core GDPR types
โ”‚   โ”œโ”€โ”€ error.rs                # GDPR-specific errors
โ”‚   โ”œโ”€โ”€ article6.rs             # Lawful bases (DataProcessing)
โ”‚   โ”œโ”€โ”€ article9.rs             # Special categories
โ”‚   โ”œโ”€โ”€ article24.rs            # Controller accountability
โ”‚   โ”œโ”€โ”€ article25.rs            # Data Protection by Design
โ”‚   โ”œโ”€โ”€ article26.rs            # Joint controllers
โ”‚   โ”œโ”€โ”€ article30.rs            # ROPA
โ”‚   โ”œโ”€โ”€ processor_contract.rs  # Article 28
โ”‚   โ”œโ”€โ”€ dpo.rs                  # Articles 37-39
โ”‚   โ”œโ”€โ”€ dpia.rs                 # Articles 35-36
โ”‚   โ”œโ”€โ”€ rights.rs               # Data subject rights (15-22)
โ”‚   โ”œโ”€โ”€ security.rs             # Security & breach (32-34)
โ”‚   โ”œโ”€โ”€ cross_border.rs         # Chapter V transfers
โ”‚   โ””โ”€โ”€ mod.rs
โ”œโ”€โ”€ consumer_rights/            # Consumer Rights Directive
โ”‚   โ”œโ”€โ”€ types.rs                # Contract types
โ”‚   โ”œโ”€โ”€ withdrawal.rs           # Withdrawal right calculator
โ”‚   โ”œโ”€โ”€ error.rs                # Consumer rights errors
โ”‚   โ””โ”€โ”€ mod.rs
โ”œโ”€โ”€ competition/                # Competition Law
โ”‚   โ”œโ”€โ”€ article101.rs           # Anti-competitive agreements
โ”‚   โ”œโ”€โ”€ article102.rs           # Abuse of dominance
โ”‚   โ”œโ”€โ”€ types.rs                # Market definition, abuse types
โ”‚   โ”œโ”€โ”€ error.rs                # Competition errors
โ”‚   โ””โ”€โ”€ mod.rs
โ”œโ”€โ”€ treaty/                     # Treaty Framework
โ”‚   โ”œโ”€โ”€ types.rs                # Treaty types and articles
โ”‚   โ”œโ”€โ”€ four_freedoms.rs        # Four freedoms
โ”‚   โ”œโ”€โ”€ charter.rs              # Charter of Fundamental Rights
โ”‚   โ”œโ”€โ”€ case_law.rs             # CJEU landmark cases
โ”‚   โ””โ”€โ”€ mod.rs
โ””โ”€โ”€ shared/
    โ””โ”€โ”€ member_states.rs        # EU27 + EEA registry

Integration with legalis-core

All EU legal instruments integrate with legalis-core:

  • Uses Statute, Condition, Effect types
  • Supports LegalResult::JudicialDiscretion for balancing tests
  • Follows the same builder pattern as other jurisdictions

Design Principles

  1. Type Safety: Enums for legal concepts (LawfulBasis, DataSubjectRight, AbuseType)
  2. Builder Pattern: Fluent API for complex data structures
  3. Source Attribution: All legal text references EUR-Lex CELEX numbers
  4. Judicial Discretion: Uses LegalResult::JudicialDiscretion for balancing tests
  5. Extensibility: Optional language fields for future translations
  6. Integration: Full integration with legalis-core framework
  7. Zero Warnings: Strict compilation with no warnings policy

Dependencies

  • legalis-core: Core legal framework types
  • legalis-i18n: Internationalization support
  • chrono: Date/time handling
  • serde: Serialization support (optional)
  • thiserror: Error handling
  • uuid: Unique identifiers for legal results

Future Roadmap

Phase 6: Multi-Language Expansion (v0.6.0)

  • French translation (RGPD)
  • Spanish translation
  • Italian translation
  • Community contribution framework

Phase 7: Member State Implementations (v0.7.0+)

  • Germany (BDSG - Bundesdatenschutzgesetz)
  • France (Loi Informatique et Libertรฉs)
  • Italy (Codice Privacy)
  • Pattern for other member states

Technical Improvements

  • Performance optimization
  • Benchmark suite
  • Property-based testing
  • EUR-Lex API integration

License

MIT OR Apache-2.0

Contributing

Contributions welcome! Areas of interest:

  • Additional language translations (13 remaining EU languages: BG, HR, DA, ET, FI, HU, GA, LV, LT, MT, RO, SK, SL)
  • Member state-specific implementations
  • CJEU case law expansion
  • Performance optimizations
  • Documentation improvements

When contributing:

  • Follow the builder pattern established in existing code
  • Include comprehensive tests (maintain 100% test pass rate)
  • Add examples for new features
  • Reference EUR-Lex sources (CELEX numbers)
  • Maintain zero warnings policy (cargo clippy -- -D warnings)
Commit count: 4

cargo fmt