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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user