[英]Implementing the From trait for a ParseIntError
使用時試試! 宏,它使用From特性將錯誤轉換為所需的錯誤。
我想將一些錯誤轉換為我自己的類型。 這對於io :: Error非常有用,但是我無法從核心將其用於錯誤類型。
use std::io;
pub struct ParserError {
pub message: String,
}
impl From<io::Error> for ParserError {
fn from(e: io::Error) -> ParserError {
ParserError{message: format!("Generic IO error: {}", e.description())}
}
}
這很適合嘗試! 在任何東西上。 但是現在進行解析:
fn parse_string(s: &str) -> Result<u64, ParserError> {
let i = try!(s.parse::<u64>());
return Ok(i);
}
我的錯誤說:
錯誤:特征類型core::convert::From<parser::ParserError>
未實現,類型為core :: num :: ParseIntError
我嘗試實現此發件人:
impl From<core::num::ParseIntError> for ParserError {
fn from(_: core::num::ParseIntError) -> ParserError {
ParserError{message: "Invalid data type".to_string()}
}
}
但是我無法導入核心。 這個怎么做?
來自core
的模塊由std
。 您可以通過在代碼中用std
替換core
來解決錯誤:
impl From<std::num::ParseIntError> for ParserError {
fn from(_: std::num::ParseIntError) -> ParserError {
ParserError{message: "Invalid data type".to_string()}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.