Hide CandidateMap iterator implementation details

This commit is contained in:
RunasSudo 2022-11-06 14:45:35 +11:00
parent 1a57fba093
commit 631d4e770a
No known key found for this signature in database
GPG Key ID: 7234E476BF21C61A
1 changed files with 6 additions and 6 deletions

View File

@ -84,19 +84,19 @@ impl<'e, V> CandidateMap<'e, V> {
/// See [HashMap::iter](std::collections::HashMap::iter) /// See [HashMap::iter](std::collections::HashMap::iter)
#[inline] #[inline]
pub fn iter(&self) -> Iter<'_, 'e, V> { pub fn iter<'a>(&'a self) -> impl Iterator<Item=(&'e Candidate, &'a V)> {
return Iter { map: &self, index: 0 }; return Iter { map: &self, index: 0 };
} }
/// See [HashMap::iter_mut](std::collections::HashMap::iter_mut) /// See [HashMap::iter_mut](std::collections::HashMap::iter_mut)
#[inline] #[inline]
pub fn iter_mut(&mut self) -> IterMut<'_, 'e, V> { pub fn iter_mut<'a>(&'a mut self) -> impl Iterator<Item=(&'e Candidate, &'a mut V)> {
return IterMut { map: self, index: 0 }; return IterMut { map: self, index: 0 };
} }
/// See [HashMap::values](std::collections::HashMap::values) /// See [HashMap::values](std::collections::HashMap::values)
#[inline] #[inline]
pub fn values(&self) -> Values<'_, 'e, V> { pub fn values<'a>(&'a self) -> impl Iterator<Item=&'a V> {
return Values { map: &self, index: 0 }; return Values { map: &self, index: 0 };
} }
} }
@ -110,7 +110,7 @@ impl<'e, V> Index<&Candidate> for CandidateMap<'e, V> {
} }
/// See [CandidateMap::iter] /// See [CandidateMap::iter]
pub struct Iter<'m, 'e, V> { struct Iter<'m, 'e, V> {
map: &'m CandidateMap<'e, V>, map: &'m CandidateMap<'e, V>,
index: usize index: usize
} }
@ -146,7 +146,7 @@ impl<'m, 'e, V> Iterator for Iter<'m, 'e, V> {
} }
/// See [CandidateMap::iter_mut] /// See [CandidateMap::iter_mut]
pub struct IterMut<'m, 'e, V> { struct IterMut<'m, 'e, V> {
map: &'m mut CandidateMap<'e, V>, map: &'m mut CandidateMap<'e, V>,
index: usize index: usize
} }
@ -187,7 +187,7 @@ impl<'m, 'e, V> Iterator for IterMut<'m, 'e, V> {
} }
/// See [CandidateMap::values] /// See [CandidateMap::values]
pub struct Values<'m, 'e, V> { struct Values<'m, 'e, V> {
map: &'m CandidateMap<'e, V>, map: &'m CandidateMap<'e, V>,
index: usize index: usize
} }