diff options
author | 2021-09-15 15:08:35 +0700 | |
---|---|---|
committer | 2021-09-15 15:08:35 +0700 | |
commit | c914b2a05be2c33ec936f63efd25daaf2b4c4739 (patch) | |
tree | add25c986ba0582628d921e45c2eae4006e19ee4 /wgpu | |
parent | 643500bbdf1a169db1bcdcb8e971334037274d38 (diff) | |
download | iced-c914b2a05be2c33ec936f63efd25daaf2b4c4739.tar.gz iced-c914b2a05be2c33ec936f63efd25daaf2b4c4739.tar.bz2 iced-c914b2a05be2c33ec936f63efd25daaf2b4c4739.zip |
Use `Iterator::min_by` instead of `fold` in `hit_test`
Diffstat (limited to 'wgpu')
-rw-r--r-- | wgpu/src/text.rs | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/wgpu/src/text.rs b/wgpu/src/text.rs index 34fd5b58..336696ee 100644 --- a/wgpu/src/text.rs +++ b/wgpu/src/text.rs @@ -195,20 +195,18 @@ impl Pipeline { } } - let (idx, nearest) = bounds.fold( - (None, iced_native::Point::ORIGIN), - |best, (idx, bounds)| { - let center = bounds.center(); - - if center.distance(point) < best.1.distance(point) { - (Some(idx), center) - } else { - best - } - }, - ); + let nearest = bounds + .map(|(index, bounds)| (index, bounds.center())) + .min_by(|(_, center_a), (_, center_b)| { + center_a + .distance(point) + .partial_cmp(¢er_b.distance(point)) + .unwrap_or(std::cmp::Ordering::Greater) + }); - idx.map(|idx| Hit::NearestCharOffset(char_index(idx), point - nearest)) + nearest.map(|(idx, center)| { + Hit::NearestCharOffset(char_index(idx), point - center) + }) } pub fn trim_measurement_cache(&mut self) { |