错误::d描述被软弃用是否意味着我必须重写当前的错误消息系统?



我注意到 Rust 软弃用Error::description.建议使用Displayto_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 开始,此方法现在已硬性弃用。

最新更新