compiler/rust/bitset: impl FromIterator

Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812>
This commit is contained in:
Mel Henning
2024-12-23 20:29:35 -05:00
committed by Marge Bot
parent de47702dde
commit 8ec885da1d
+20
View File
@@ -151,6 +151,19 @@ impl Default for BitSet {
}
}
impl FromIterator<usize> for BitSet {
fn from_iter<T>(iter: T) -> Self
where
T: IntoIterator<Item = usize>,
{
let mut res = BitSet::new();
for i in iter {
res.insert(i);
}
res
}
}
impl BitAndAssign for BitSet {
fn bitand_assign(&mut self, rhs: BitSet) {
self.reserve_words(rhs.words.len());
@@ -298,4 +311,11 @@ mod tests {
set2.clear();
assert!(set2.is_empty());
}
#[test]
fn test_from_iter() {
let vec = vec![0, 1, 99];
let set: BitSet = vec.clone().into_iter().collect();
assert_eq!(to_vec(&set), vec);
}
}