Skip to main content

Crate legalis_diff

Crate legalis_diff 

Source
Expand description

Legalis-Diff: Statute diffing and change detection for Legalis-RS.

This crate provides tools for detecting and analyzing changes between statute versions:

  • Structural diff between statutes
  • Change categorization
  • Impact analysis
  • Amendment tracking
  • Multiple output formats (JSON, HTML, Markdown)

§Quick Start

use legalis_core::{Statute, Effect, EffectType, Condition, ComparisonOp};
use legalis_diff::{diff, summarize};

// Create two versions of a statute
let old = Statute::new(
    "benefit-123",
    "Senior Tax Credit",
    Effect::new(EffectType::Grant, "Tax credit granted"),
).with_precondition(Condition::Age {
    operator: ComparisonOp::GreaterOrEqual,
    value: 65,
});

let mut new = old.clone();
new.preconditions[0] = Condition::Age {
    operator: ComparisonOp::GreaterOrEqual,
    value: 60, // Lowered age requirement
};

// Compute the diff
let diff_result = diff(&old, &new).unwrap();

// Check impact
assert!(diff_result.impact.affects_eligibility);

// Generate summary
let summary = summarize(&diff_result);
println!("{}", summary);

Modules§

adaptive
Adaptive algorithm selection for optimal diff performance.
advanced_cache
Advanced caching and memoization for diff operations.
advanced_visual
Advanced visualization features for statute diffs.
algorithms
Advanced diff algorithms for statute comparison.
analysis
Advanced analysis of statute changes.
api
REST API structures for diff operations.
audit
Audit trail for tracking changes, attribution, and lifecycle management.
cloud
Cloud Storage Backend Integration
collaborative
Collaborative features for diff review and approval.
collaborative_review
Collaborative diff review system for statute changes.
compliance
Compliance-focused diffing for regulatory and policy analysis.
cross_jurisdiction
Cross-jurisdiction diffing for comparing statutes across different legal systems.
distributed
Distributed Diff Computation
dsl
Domain-Specific Language (DSL) for custom diff rules.
enterprise
Enterprise diff management for large-scale statute operations.
export
Advanced export formats for diff results.
export_plugins
Export plugin system for custom output formats.
formats
Output formatters for statute diffs.
fuzzy
Fuzzy matching for statute changes.
git
Git-style diff interface for statute changes.
gpu
GPU-Accelerated Diff Computation
integration
Integration features for external systems and workflows.
integration_examples
Integration Examples
legal_domain
Legal-domain aware diffing for statute analysis.
legislative_history
Legislative history integration for statute tracking.
llm
LLM-Based Semantic Diff Analysis
machine_readable
Machine-readable diff formats for external integrations.
merge
Three-way merge support for concurrent statute amendments.
ml
Machine learning integration for intelligent diff analysis.
ml_advanced
Advanced machine learning model integration for diff analysis.
multilingual
Multilingual support for diff summaries and NLP.
nlp
Natural Language Processing module for generating human-readable summaries.
optimization
Performance optimizations for diff operations.
parallel
Parallel diff computation for batch operations.
patterns
Pattern recognition and best practices for statute amendments.
plugins
Plugin system for extending diff analysis capabilities.
quantum
Quantum-Ready Diff Algorithms
realtime
Real-time diff streaming and collaborative editing.
recommendation
Change recommendation system for statute amendments.
rollback
Rollback analysis for statute changes.
scripting
Scripting support for custom diff analysis using Rhai.
security
Security features for diff operations.
semantic
Semantic diff: Understanding meaning changes in statutes.
simd
SIMD-optimized operations for diff algorithms.
statistics
Statistical analysis of statute changes and diff patterns.
streaming
Streaming diff for large statutes and performance optimizations.
templates
Diff templates for common amendment patterns.
time_travel
Time-travel diffing for point-in-time statute analysis.
timeline
Timeline and amendment chain tracking for statute evolution.
timeseries
Time-series analysis for statute changes over time.
validation
Change validation for statute diffs.
vcs
Version control system integration for statute diffs.
vcs_integration
Advanced version control integration for statutes.
visual
Visual diff reports with charts and graphical representations.

Structs§

Change
A single change.
DetailedSummary
Detailed summary with confidence scores for each aspect of the diff.
ImpactAssessment
Impact assessment of changes.
StatuteDiff
A diff between two statutes.
VersionInfo
Version information for the diff.

Enums§

ChangeTarget
What was changed.
ChangeType
Types of changes.
DiffError
Errors during diff operations.
Severity
Severity of changes.

Functions§

count_changes_by_target
Counts the number of changes by target type.
detailed_summary
Creates a detailed summary with confidence scores.
diff
Computes the diff between two statutes.
diff_effect_only
Compares only the effect of two statutes.
diff_preconditions_only
Compares only the preconditions of two statutes.
diff_sequence
Computes diffs for a sequence of statute versions.
filter_changes_by_type
Filters changes by type from a diff.
has_breaking_changes
Checks if a diff contains any breaking changes.
summarize
Summary of changes for display.

Type Aliases§

DiffResult
Result type for diff operations.