Rust错误特性奇怪的方法丢失了

时间:2014-11-19 05:37:49

标签: rust

我有一些像这样的代码:

use std::error;

enum E {
    O
}

impl error::Error for E {
    fn description(&self) -> &str {
        "ERROR"
    }
}

fn main() {
    let e = O;
    println!("Hello, world!{}", e.description())
}

我得到了:

错误:类型E未在名为description

的范围内实现任何方法

1 个答案:

答案 0 :(得分:3)

您必须在源文件的顶部或main内添加以下行,以便将Error特征方法纳入范围:

use std::error::Error;

您现在也可以将特征方法称为静态函数,它不需要添加以上行:

fn main() {
    let e = O;
    println!("Hello, world!{}", error::Error::description(&e))
}