Как написать функцию на Rust, которая принимает итератор?
```html
مرحباً جميعاً! أنا مبتدئ في Rust وأحاول كتابة دالة يمكنها معالجة سلسلة من الأرقام من مصادر مختلفة: من متجه، من نطاق، من ملف، إلخ. في لغات أخرى كنت سأمرر مصفوفة أو قائمة، لكن في Rust، كما فهمت، من المعتاد استخدام المكررات.
المشكلة هي أنني لا أفهم كيفية تعريف نوع المعامل بشكل صحيح. جربت كتابة شيء مثل:
```rust
fn sum_squares(items: Iterator- ) -> i32 {
items.map(|x| x * x).sum()
}
fn main() {
let vec = vec![1, 2, 3, 4, 5];
println!("{}", sum_squares(vec.iter()));
}
```
لكن المترجم يشتكي: "error[E0277]: the size for values of type `dyn Iterator
- ` cannot be known at compilation time". أفهم أن هذا مرتبط بـ traits وأحجام الكومة، لكنني لا أعرف كيفية إصلاحه.
أحتاج إلى أن تعمل الدالة مع أنواع مختلفة من المكررات: `std::vec::IntoIter`، `std::ops::Range`، `std::iter::Map`، إلخ. كيف يمكنني تعريف نوع المعامل بشكل صحيح؟
```