我有一个通用结构:
pub struct Smth<T: Copy> {
data: Vec<T>
}
如何实现参数p
为项类型为T
的迭代器的方法?
像这样的东西,但工作(看add_iter
方法):)
impl<T: Copy> Smth<T> {
fn new(data: Vec<T>) -> Self {
Smth { data }
}
fn add(&mut self, item: T) {
self.data.push(item);
}
fn add_iter<I: Iterator>(&mut self, iter: I)
where I::Item: T // <-- Here is the problem
{
for item in iter {
self.add(item);
}
}
}
我也试过了where I::Item: Copy
,但这也行不通。