【发布时间】:2018-12-12 15:29:22
【问题描述】:
给定一个通用函数:
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
像我理解的那样尝试它the serde documentation regarding deserializer lifetimes
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 `(`
我做错了什么?
【问题讨论】:
标签: generics rust traits lifetime