| Crates.io | legalis-diff |
| lib.rs | legalis-diff |
| version | 0.1.3 |
| created_at | 2026-01-05 05:37:19.372499+00 |
| updated_at | 2026-01-21 03:50:53.763463+00 |
| description | Statute diffing and change detection for Legalis-RS |
| homepage | https://github.com/cool-japan/legalis |
| repository | https://github.com/cool-japan/legalis |
| max_upload_size | |
| id | 2023181 |
| size | 1,302,304 |
Statute diffing and change detection for Legalis-RS.
legalis-diff provides tools for comparing statute versions, detecting changes, and assessing the impact of legislative amendments.
use legalis_diff::{StatuteDiff, DiffReport, ChangeType, ImpactLevel};
use legalis_core::Statute;
// Compare two statute versions
let old_statute = /* ... */;
let new_statute = /* ... */;
let diff = StatuteDiff::compare(&old_statute, &new_statute);
// Check for changes
if diff.has_changes() {
println!("Changes detected:");
for change in diff.changes() {
match change.change_type {
ChangeType::Added => println!(" + {}", change.description),
ChangeType::Removed => println!(" - {}", change.description),
ChangeType::Modified => println!(" ~ {}", change.description),
}
}
}
// Get impact assessment
let impact = diff.assess_impact();
match impact.level {
ImpactLevel::Minor => println!("Minor changes"),
ImpactLevel::Moderate => println!("Moderate changes"),
ImpactLevel::Major => println!("Major changes - review required"),
ImpactLevel::Breaking => println!("Breaking changes - full review required"),
}
| Type | Description |
|---|---|
Added |
New element added |
Removed |
Element removed |
Modified |
Element changed |
| Level | Description |
|---|---|
Minor |
Cosmetic or documentation changes |
Moderate |
Changes to discretionary elements |
Major |
Changes to conditions or effects |
Breaking |
Fundamental structural changes |
# Compare two statute files
legalis diff old.legalis new.legalis
# Output as JSON
legalis diff old.legalis new.legalis --format json
MIT OR Apache-2.0