以下代码会生成错误:
struct IntParseVisitor<'de, V: Visitor<'de>> {
inner_visitor: V,
}
pub trait Visitor<'de>: Sized {
fn visit_str<E>(self, v: &'de str) {}
}
Run Code Online (Sandbox Code Playgroud)
error[E0392]: parameter `'de` is never used
--> src/lib.rs:1:24
|
1 | struct IntParseVisitor<'de, V: Visitor<'de>> {
| ^^^ unused parameter
|
= help: consider removing `'de`, referring to it in a field, or using a marker such as `std::marker::PhantomData`
Run Code Online (Sandbox Code Playgroud)
我不太明白它是如何使用的。难道不是用来做的吗Visitor<'de>?解决这个问题的最佳方法是什么?请注意,我无法更改代码,Visitor因为它位于 Serde 中。
您可以按照错误提示进行操作:
help:考虑删除
'de、在字段中引用它或使用标记,例如 std::marker::PhantomData
struct IntParseVisitor<'de, V: Visitor<'de>> {
inner_visitor: V,
_phantom_data: std::marker::PhantomData<&'de ()>,
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1619 次 |
| 最近记录: |