Учитывая обобщенную функцию:
fn foo<T> (_x: T) {}
Я хотел бы добавить границу serde::Deserialize
.Однако следующее
fn foo<T: serde::Deserialize> (_x: T) {}
приводит к
error[E0637]: `&` without an explicit lifetime name cannot be used here
--> src/lib.rs:1:11
|
1 | fn foo<T: serde::Deserialize> (_x: T) {}
| ^^^^^^^^^^^^^^^^^^ explicit lifetime name needed here
И пробует это так, как я понимаю Документация serde относительно времени жизни десериализатора
fn foo<'de, T> where T: serde::Deserialize<'de> (_x: T) {}
также выдает ошибку:
error: expected `(`, found `where`
--> src/lib.rs:1:16
|
1 | fn foo<'de, T> where T: serde::Deserialize<'de> (_x: T) {}
| ^^^^^ expected `(`
Что я делаю не так?