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.
- Detailed
Summary - Detailed summary with confidence scores for each aspect of the diff.
- Impact
Assessment - Impact assessment of changes.
- Statute
Diff - A diff between two statutes.
- Version
Info - Version information for the diff.
Enums§
- Change
Target - What was changed.
- Change
Type - Types of changes.
- Diff
Error - 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§
- Diff
Result - Result type for diff operations.