|
|
|
@ -446,6 +446,18 @@ where |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
impl<'msg, 'view, T, ViewT> Extend<ViewT> for RepeatedMut<'msg, T> |
|
|
|
|
where |
|
|
|
|
T: ProxiedInRepeated + ?Sized + 'view, |
|
|
|
|
ViewT: Into<View<'view, T>>, |
|
|
|
|
{ |
|
|
|
|
fn extend<I: IntoIterator<Item = ViewT>>(&mut self, iter: I) { |
|
|
|
|
for item in iter { |
|
|
|
|
self.push(item.into()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[cfg(test)] |
|
|
|
|
mod tests { |
|
|
|
|
use super::*; |
|
|
|
@ -492,4 +504,20 @@ mod tests { |
|
|
|
|
bool => [false, true, true, false], |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
fn test_repeated_extend() { |
|
|
|
|
let mut r = Repeated::<i32>::new(); |
|
|
|
|
r.as_mut().extend([0, 1]); |
|
|
|
|
assert_that!(r.as_mut().iter().collect::<Vec<_>>(), elements_are![eq(0), eq(1)]); |
|
|
|
|
let mut x = Repeated::<i32>::new(); |
|
|
|
|
x.as_mut().extend([2, 3]); |
|
|
|
|
|
|
|
|
|
r.as_mut().extend(&x.as_mut()); |
|
|
|
|
|
|
|
|
|
assert_that!( |
|
|
|
|
r.as_mut().iter().collect::<Vec<_>>(), |
|
|
|
|
elements_are![eq(0), eq(1), eq(2), eq(3)] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|