У меня есть вектор, значения которого определены чертой, и я хотел бы использовать методы, предусмотренные чертой Iterator
для этого вектора.
Вот упрощенный код моего варианта использования:
Вариант A
fn beta<T: Into<i32>>(s: Vec<T>) {
for x in s {
println!("{:?}", x.into());
}
}
Вариант B
fn beta2<U: Into<i32>>(s: Vec<U>) {
for x in s.iter() {
println!("{:?}", x.into());
}
}
Вариант A действителен, компилируется и работает, как ожидается. Случай B , однако, вызовет ошибку времени компиляции:
error[E0282]: type annotations needed
--> src/main.rs:11:26
|
11 | println!("{:?}", x.into());
| ^^^^^^^^ cannot infer type for `T`
Где мне разместить аннотацию типа в этом случае и какова ожидаемая аннотация типа?
детская площадка