实现Deserialize
时,如何返回错误?
impl<'de> Deserialize<'de> for Response {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer<'de> {
... // Which error to return here?
}
}
这里每个错误都必须可以转换成D::Error
,但是D::Error
可以是任何类型,所以我不能创建一个可以转换成D::Error
的类型。
如何处理这种情况呢?我几乎可以肯定有某种方法可以创建一个可以返回错误的反序列化器,但我不知道该怎么做。
1条答案
按热度按时间js5cn81o1#
由于
D::Error
是实现serde::de::Error
所必需的,因此您可以只使用Error::custom
或其任何更具体的构造函数: