(Не надо кидать код картинкой)
MCVE для твоей ошибки выглядит так:
fn foo<T>(a: T) -> (T, T) {
(a, a)
}
fn main() {
foo(1);
}
playground
Как и написано в ошибке, дело в том, что используемый тобой типаж `T` не требует
маркерного типажа Copy, а значит переменные с его типом при первом складывании в поле структуры перемещаются, т.е. во второе поле класть уже нечего.
Самый простой способ исправить ошибки в данном случае - добавить требование Copy:
fn foo<T: Copy>(a: T) -> (T, T) {
(a, a)
}
Playground
Но типаж Copy работает только
для POD типов, для более сложных типов в такой ситуации нужен уже
типаж Clone.