Inc*_*ete 0 lifetime rust serde serde-json
#[derive(Deserialize)]
struct S<'d, T>
where T: Deserialize<'d>
{
foo: T,
other_field: String
}
Run Code Online (Sandbox Code Playgroud)
上面的代码无法编译,抱怨未使用的生命周期参数,但如果我删除它,Deserialize就会丢失生命周期。
不使用幻像标记或 可以使上述代码正确吗DeserializeOwned?
如果完全删除该where子句,该代码将起作用。派生将T: Deserialize<'de>自动为派生Deserialize<'de>实现添加绑定。
#[derive(Deserialize)]
struct S<T> {
foo: T,
other_field: String
}
Run Code Online (Sandbox Code Playgroud)
对于 Rust,通常在结构/枚举声明中不限制泛型类型。通用类型仅限制用于impl需要行为的块。
| 归档时间: |
|
| 查看次数: |
2832 次 |
| 最近记录: |