Mercurial > public > mercurial-scm > hg
comparison rust/hg-core/src/utils.rs @ 49934:83437ad8fe3d
rust-clippy: remove redundant suffix from enum
Same as last time, this makes the code clearer in this instance.
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Tue, 10 Jan 2023 10:41:52 +0100 |
parents | e98fd81bb151 |
children | f5b168979626 |
comparison
equal
deleted
inserted
replaced
49933:be3b545c5cff | 49934:83437ad8fe3d |
---|---|
289 let s = b"before $SOME_LONG_NAME_THAT_WE_ASSUME_IS_NOT_AN_ACTUAL_ENV_VAR after"; | 289 let s = b"before $SOME_LONG_NAME_THAT_WE_ASSUME_IS_NOT_AN_ACTUAL_ENV_VAR after"; |
290 assert_eq!(expand_vars(s), &s[..]); | 290 assert_eq!(expand_vars(s), &s[..]); |
291 } | 291 } |
292 | 292 |
293 pub(crate) enum MergeResult<V> { | 293 pub(crate) enum MergeResult<V> { |
294 LeftValue, | 294 Left, |
295 RightValue, | 295 Right, |
296 NewValue(V), | 296 New(V), |
297 } | 297 } |
298 | 298 |
299 /// Return the union of the two given maps, | 299 /// Return the union of the two given maps, |
300 /// calling `merge(key, left_value, right_value)` to resolve keys that exist in | 300 /// calling `merge(key, left_value, right_value)` to resolve keys that exist in |
301 /// both. | 301 /// both. |
332 } else if left.len() < right.len() / 2 { | 332 } else if left.len() < right.len() / 2 { |
333 // Same as above but with `left` and `right` swapped | 333 // Same as above but with `left` and `right` swapped |
334 ordmap_union_with_merge_by_iter(right, left, |key, a, b| { | 334 ordmap_union_with_merge_by_iter(right, left, |key, a, b| { |
335 // Also swapped in `merge` arguments: | 335 // Also swapped in `merge` arguments: |
336 match merge(key, b, a) { | 336 match merge(key, b, a) { |
337 MergeResult::NewValue(v) => MergeResult::NewValue(v), | 337 MergeResult::New(v) => MergeResult::New(v), |
338 // … and swap back in `merge` result: | 338 // … and swap back in `merge` result: |
339 MergeResult::LeftValue => MergeResult::RightValue, | 339 MergeResult::Left => MergeResult::Right, |
340 MergeResult::RightValue => MergeResult::LeftValue, | 340 MergeResult::Right => MergeResult::Left, |
341 } | 341 } |
342 }) | 342 }) |
343 } else { | 343 } else { |
344 // For maps of similar size, use the algorithm based on `OrdMap::diff` | 344 // For maps of similar size, use the algorithm based on `OrdMap::diff` |
345 ordmap_union_with_merge_by_diff(left, right, merge) | 345 ordmap_union_with_merge_by_diff(left, right, merge) |
360 match left.get(&key) { | 360 match left.get(&key) { |
361 None => { | 361 None => { |
362 left.insert(key, right_value); | 362 left.insert(key, right_value); |
363 } | 363 } |
364 Some(left_value) => match merge(&key, left_value, &right_value) { | 364 Some(left_value) => match merge(&key, left_value, &right_value) { |
365 MergeResult::LeftValue => {} | 365 MergeResult::Left => {} |
366 MergeResult::RightValue => { | 366 MergeResult::Right => { |
367 left.insert(key, right_value); | 367 left.insert(key, right_value); |
368 } | 368 } |
369 MergeResult::NewValue(new_value) => { | 369 MergeResult::New(new_value) => { |
370 left.insert(key, new_value); | 370 left.insert(key, new_value); |
371 } | 371 } |
372 }, | 372 }, |
373 } | 373 } |
374 } | 374 } |
389 // in order to turn it into the union. | 389 // in order to turn it into the union. |
390 // | 390 // |
391 // TODO: if/when https://github.com/bodil/im-rs/pull/168 is accepted, | 391 // TODO: if/when https://github.com/bodil/im-rs/pull/168 is accepted, |
392 // change these from `Vec<(K, V)>` to `Vec<(&K, Cow<V>)>` | 392 // change these from `Vec<(K, V)>` to `Vec<(&K, Cow<V>)>` |
393 // with `left_updates` only borrowing from `right` and `right_updates` from | 393 // with `left_updates` only borrowing from `right` and `right_updates` from |
394 // `left`, and with `Cow::Owned` used for `MergeResult::NewValue`. | 394 // `left`, and with `Cow::Owned` used for `MergeResult::New`. |
395 // | 395 // |
396 // This would allow moving all `.clone()` calls to after we’ve decided | 396 // This would allow moving all `.clone()` calls to after we’ve decided |
397 // which of `right_updates` or `left_updates` to use | 397 // which of `right_updates` or `left_updates` to use |
398 // (value ones becoming `Cow::into_owned`), | 398 // (value ones becoming `Cow::into_owned`), |
399 // and avoid making clones we don’t end up using. | 399 // and avoid making clones we don’t end up using. |
410 } | 410 } |
411 DiffItem::Update { | 411 DiffItem::Update { |
412 old: (key, left_value), | 412 old: (key, left_value), |
413 new: (_, right_value), | 413 new: (_, right_value), |
414 } => match merge(key, left_value, right_value) { | 414 } => match merge(key, left_value, right_value) { |
415 MergeResult::LeftValue => { | 415 MergeResult::Left => { |
416 right_updates.push((key.clone(), left_value.clone())) | 416 right_updates.push((key.clone(), left_value.clone())) |
417 } | 417 } |
418 MergeResult::RightValue => { | 418 MergeResult::Right => { |
419 left_updates.push((key.clone(), right_value.clone())) | 419 left_updates.push((key.clone(), right_value.clone())) |
420 } | 420 } |
421 MergeResult::NewValue(new_value) => { | 421 MergeResult::New(new_value) => { |
422 left_updates.push((key.clone(), new_value.clone())); | 422 left_updates.push((key.clone(), new_value.clone())); |
423 right_updates.push((key.clone(), new_value)) | 423 right_updates.push((key.clone(), new_value)) |
424 } | 424 } |
425 }, | 425 }, |
426 } | 426 } |