我注意到 Rust 软弃用Error::description
.建议使用Display
或to_string()
来获取我的错误描述,但这是否意味着我必须重写当前的错误消息系统来处理String
而不是&str
?
我正在使用这段代码,我注意到野外的代码看起来很相似:
fn description(&self) -> &str {
match *self {
Error::CannotDeriveFromHardenedKey => "cannot derive hardened key from public key",
Error::Ecdsa(ref e) => error::Error::description(e),
Error::RngError(_) => "rng error",
Error::MnemonicError(_) => "mnemonic error",
}
}
是否意味着我必须重写当前的错误消息系统来处理
String
而不是&str
?
否,这意味着针对您的类型的新的或要更新的Error
实现最好忽略方法description
。这意味着,不要在你的impl Error
事业中添加fn description(&self) -> &str {}
,这似乎是你想做的。
暂时实现它可能是可能的,但它本质上仅限于返回一个&str
,这确实是一个有限的签名。
请注意,从 Rust 1.42.0 开始,此方法现在已硬性弃用。