Skip to main content

diff_sequence

Function diff_sequence 

Source
pub fn diff_sequence(versions: &[Statute]) -> DiffResult<Vec<StatuteDiff>>
Expand description

Computes diffs for a sequence of statute versions.

Returns a vector of diffs, where each diff represents the changes from one version to the next.

§Examples

use legalis_core::{Statute, Effect, EffectType};
use legalis_diff::diff_sequence;

let v1 = Statute::new("law", "Version 1", Effect::new(EffectType::Grant, "Benefit"));
let v2 = Statute::new("law", "Version 2", Effect::new(EffectType::Grant, "Benefit"));
let v3 = Statute::new("law", "Version 3", Effect::new(EffectType::Grant, "Benefit"));

let versions = vec![v1, v2, v3];
let diffs = diff_sequence(&versions).unwrap();

// Should have 2 diffs for 3 versions (v1->v2, v2->v3)
assert_eq!(diffs.len(), 2);

§Errors

Returns DiffError::IdMismatch if any statutes have different IDs.