From 9a3de55a5ef5e5b42d7010c3508340b8abe601cf Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 20 May 2021 11:26:33 +0100 Subject: [PATCH] utils: Rename [Index]Vec::get_or_extend_with and soup up Signed-off-by: Ian Jackson --- src/bundles.rs | 2 +- src/utils.rs | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bundles.rs b/src/bundles.rs index 7232ac29..0235cfad 100644 --- a/src/bundles.rs +++ b/src/bundles.rs @@ -886,7 +886,7 @@ impl InstanceBundles { }, }; - ib.bundles.ensure_element_with(parsed.index().into(), default); + ib.bundles.get_or_extend_with(parsed.index().into(), default); if_let!{ BundleSavefile::Bundle(id) = parsed; else continue; } diff --git a/src/utils.rs b/src/utils.rs index 335de872..0573f389 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -626,16 +626,19 @@ impl T { #[ext(pub)] impl Vec { - fn ensure_element_with(&mut self, i: usize, f: F) where F: FnMut() -> T { + fn get_or_extend_with(&mut self, i: usize, f: F) -> &mut T + where F: FnMut() -> T { if self.get(i).is_none() { self.resize_with(i+1, f); } + &mut self[i] } } #[ext(pub)] impl IndexVec where I: index_vec::Idx { - fn ensure_element_with(&mut self, i: I, f: F) where F: FnMut() -> T { - self.raw.ensure_element_with(i.index(), f) + fn get_or_extend_with(&mut self, i: I, f: F) -> &mut T + where F: FnMut() -> T { + self.raw.get_or_extend_with(i.index(), f) } } -- 2.30.2