@@ -60,8 +60,8 @@ fn JsonDiff::stringify(self : JsonDiff, terminal~ : Bool) -> String? {
6060
6161///|
6262fn JsonDiff ::object_diff (
63- obj1 : Map [String , Json ],
64- obj2 : Map [String , Json ],
63+ lhs : Map [String , Json ],
64+ rhs : Map [String , Json ],
6565 keys_only : Bool ,
6666) -> JsonDiff {
6767 let diff = Map ::new ()
@@ -70,27 +70,27 @@ fn JsonDiff::object_diff(
7070 let mut score = 0.0
7171
7272 // Check for deleted keys
73- for key , value1 in obj1 .iter2 () {
74- if !obj2 .contains (key ) {
75- deleted [key ] = value1
73+ for key , value in lhs .iter2 () {
74+ if !rhs .contains (key ) {
75+ deleted [key ] = value
7676 score - = 30.0
7777 }
7878 }
7979
8080 // Check for added keys
81- for key , value2 in obj2 .iter2 () {
82- if !obj1 .contains (key ) {
83- added [key ] = value2
81+ for key , value in rhs .iter2 () {
82+ if !lhs .contains (key ) {
83+ added [key ] = value
8484 score - = 30.0
8585 }
8686 }
8787
8888 // Check for modified keys
89- for key , value1 in obj1 .iter2 () {
90- if obj2 .get (key ) is Some (value2 ) {
89+ for key , value in lhs .iter2 () {
90+ if rhs .get (key ) is Some (rhs_value ) {
9191 score + = 20.0
9292 let { score : subscore , diff : change } = JsonDiff ::diff_with_score (
93- value1 , value2 , keys_only ,
93+ value , rhs_value , keys_only ,
9494 )
9595 if change is Some (change_value ) {
9696 diff [key ] = change_value
@@ -100,7 +100,7 @@ fn JsonDiff::object_diff(
100100 }
101101 if diff .is_empty () && deleted .is_empty () && added .is_empty () {
102102 JsonDiff ::{
103- score : 100.0 * @cmp .maximum (obj1 .length ().to_double (), 0.5 ),
103+ score : 100.0 * @cmp .maximum (lhs .length ().to_double (), 0.5 ),
104104 diff : None ,
105105 }
106106 } else {
@@ -110,8 +110,8 @@ fn JsonDiff::object_diff(
110110}
111111
112112///|
113- fn JsonDiff ::check_type (item1 : Json , item2 : Json ) -> Bool {
114- match (item1 , item2 ) {
113+ fn JsonDiff ::check_type (lhs : Json , rhs : Json ) -> Bool {
114+ match (lhs , rhs ) {
115115 (Json ::Null , Json ::Null )
116116 | (Json ::True , Json ::True )
117117 | (Json ::False , Json ::False )
@@ -230,30 +230,30 @@ fn JsonDiff::descalarize(
230230
231231///|
232232fn JsonDiff ::array_diff (
233- array1 : Array [Json ],
234- array2 : Array [Json ],
233+ lhs : Array [Json ],
234+ rhs : Array [Json ],
235235 keys_only : Bool ,
236236) -> JsonDiff {
237237 let counter = Ref ::new (1 )
238- let originals1 = Map ::new ()
239- let scalar_values1 = Map ::new ()
240- let seq1 = JsonDiff ::scalarize (
238+ let lhs_originals = Map ::new ()
239+ let lhs_scalar_values = Map ::new ()
240+ let lhs_seq = JsonDiff ::scalarize (
241241 counter ,
242- array1 ,
243- scalar_values1 ,
244- originals1 ,
242+ lhs ,
243+ lhs_scalar_values ,
244+ lhs_originals ,
245245 None ,
246246 )
247- let originals2 = Map ::new ()
248- let scalar_values2 = Map ::new ()
249- let seq2 = JsonDiff ::scalarize (
247+ let rhs_originals = Map ::new ()
248+ let rhs_scalar_values = Map ::new ()
249+ let rhs_seq = JsonDiff ::scalarize (
250250 counter ,
251- array2 ,
252- scalar_values2 ,
253- originals2 ,
254- Some (originals1 ),
251+ rhs ,
252+ rhs_scalar_values ,
253+ rhs_originals ,
254+ Some (lhs_originals ),
255255 )
256- let opcodes = SequenceMatcher ::new (seq1 , seq2 ).get_opcodes ()
256+ let opcodes = SequenceMatcher ::new (lhs_seq , rhs_seq ).get_opcodes ()
257257 let result = Array ::new ()
258258 let mut score = 0.0
259259 let mut all_equal = true
@@ -264,19 +264,24 @@ fn JsonDiff::array_diff(
264264 match opcode .tag {
265265 Equal =>
266266 for i = opcode .first_start; i < opcode .first_end; i = i + 1 {
267- let key = seq1 [i ]
268- let is_scalarized1 = JsonDiff ::is_scalarized (key , originals1 )
269- guard !is_scalarized1 || JsonDiff ::is_scalarized (key , originals2 ) else {
267+ let key = lhs_seq [i ]
268+ let lhs_is_scalarized = JsonDiff ::is_scalarized (key , lhs_originals )
269+ guard !lhs_is_scalarized ||
270+ JsonDiff ::is_scalarized (key , rhs_originals ) else {
270271 abort (
271272 "Internal bug: the items associated to the key \{ key } are different in the two dictionaries" ,
272273 )
273274 }
274- if is_scalarized1 {
275- let item1 = JsonDiff ::descalarize (key , scalar_values1 , originals1 )
276- let item2 = JsonDiff ::descalarize (key , scalar_values2 , originals2 )
275+ if lhs_is_scalarized {
276+ let lhs_item = JsonDiff ::descalarize (
277+ key , lhs_scalar_values , lhs_originals ,
278+ )
279+ let rhs_item = JsonDiff ::descalarize (
280+ key , rhs_scalar_values , rhs_originals ,
281+ )
277282 let { score : _ , diff : change } = JsonDiff ::diff (
278- item1 ,
279- item2 ,
283+ lhs_item ,
284+ rhs_item ,
280285 keys_only ~,
281286 )
282287 if change is Some (change ) {
@@ -287,24 +292,32 @@ fn JsonDiff::array_diff(
287292 }
288293 } else {
289294 result .push (
290- Some (NoChange (JsonDiff ::get_scalar (key , scalar_values1 ))),
295+ Some (NoChange (JsonDiff ::get_scalar (key , lhs_scalar_values ))),
291296 )
292297 }
293298 score + = 10.0
294299 }
295300 Delete =>
296301 for i = opcode .first_start; i < opcode .first_end; i = i + 1 {
297- let key = seq1 [i ]
302+ let key = lhs_seq [i ]
298303 result .push (
299- Some (Delete (JsonDiff ::descalarize (key , scalar_values1 , originals1 ))),
304+ Some (
305+ Delete (
306+ JsonDiff ::descalarize (key , lhs_scalar_values , lhs_originals ),
307+ ),
308+ ),
300309 )
301310 score - = 5.0
302311 }
303312 Insert =>
304313 for i = opcode .second_start; i < opcode .second_end; i = i + 1 {
305- let key = seq2 [i ]
314+ let key = rhs_seq [i ]
306315 result .push (
307- Some (Insert (JsonDiff ::descalarize (key , scalar_values2 , originals2 ))),
316+ Some (
317+ Insert (
318+ JsonDiff ::descalarize (key , rhs_scalar_values , rhs_originals ),
319+ ),
320+ ),
308321 )
309322 score - = 5.0
310323 }
@@ -315,11 +328,11 @@ fn JsonDiff::array_diff(
315328 opcode .second_end - opcode .second_start,
316329 )
317330 for offset = 0 ; offset < min_len ; offset = offset + 1 {
318- let key1 = seq1 [opcode .first_start + offset ]
319- let key2 = seq2 [opcode .second_start + offset ]
331+ let lhs_key = lhs_seq [opcode .first_start + offset ]
332+ let rhs_key = rhs_seq [opcode .second_start + offset ]
320333 let { score : _ , diff : change } = JsonDiff ::diff (
321- JsonDiff ::descalarize (key1 , scalar_values1 , originals1 ),
322- JsonDiff ::descalarize (key2 , scalar_values2 , originals2 ),
334+ JsonDiff ::descalarize (lhs_key , lhs_scalar_values , lhs_originals ),
335+ JsonDiff ::descalarize (rhs_key , rhs_scalar_values , rhs_originals ),
323336 keys_only ~,
324337 )
325338 match change {
@@ -333,19 +346,23 @@ fn JsonDiff::array_diff(
333346 } else {
334347 // Handle as delete then insert
335348 for i = opcode .first_start; i < opcode .first_end; i = i + 1 {
336- let key = seq1 [i ]
349+ let key = lhs_seq [i ]
337350 result .push (
338351 Some (
339- Delete (JsonDiff ::descalarize (key , scalar_values1 , originals1 )),
352+ Delete (
353+ JsonDiff ::descalarize (key , lhs_scalar_values , lhs_originals ),
354+ ),
340355 ),
341356 )
342357 score - = 5.0
343358 }
344359 for i = opcode .second_start; i < opcode .second_end; i = i + 1 {
345- let key = seq2 [i ]
360+ let key = rhs_seq [i ]
346361 result .push (
347362 Some (
348- Insert (JsonDiff ::descalarize (key , scalar_values2 , originals2 )),
363+ Insert (
364+ JsonDiff ::descalarize (key , rhs_scalar_values , rhs_originals ),
365+ ),
349366 ),
350367 )
351368 score - = 5.0
@@ -365,18 +382,18 @@ fn JsonDiff::array_diff(
365382
366383///|
367384fn JsonDiff ::diff_with_score (
368- json1 : Json ,
369- json2 : Json ,
385+ lhs : Json ,
386+ rhs : Json ,
370387 keys_only : Bool ,
371388) -> JsonDiff {
372- match (json1 , json2 ) {
389+ match (lhs , rhs ) {
373390 (Json ::Object (lhs ), Json ::Object (rhs )) =>
374391 JsonDiff ::object_diff (lhs , rhs , keys_only )
375- (Json ::Array (array1 ), Json ::Array (array2 )) =>
376- JsonDiff ::array_diff (array1 , array2 , keys_only )
392+ (Json ::Array (lhs ), Json ::Array (rhs )) =>
393+ JsonDiff ::array_diff (lhs , rhs , keys_only )
377394 _ =>
378- if !keys_only && json1 != json2 {
379- JsonDiff ::{ score : 0.0 , diff : Some (Replace (old = json1 , new = json2 )) }
395+ if !keys_only && lhs != rhs {
396+ JsonDiff ::{ score : 0.0 , diff : Some (Replace (old = lhs , new = rhs )) }
380397 } else {
381398 JsonDiff ::{ score : 100.0 , diff : None }
382399 }
0 commit comments