Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust TryFromIntError用法_Rust - Fatal编程技术网

Rust TryFromIntError用法

Rust TryFromIntError用法,rust,Rust,我无法使用std::num::tryFromInteror作为我的TryFrom实现中的默认错误。这是预期的问题还是文档问题/错误 #![feature(try_from)] use std::convert::TryFrom; use std::num::TryFromIntError; enum MyEnum { A, B, C, } impl TryFrom<u16> for OpCode { type Error = TryFromIntE

我无法使用
std::num::tryFromInteror
作为我的
TryFrom
实现中的默认错误。这是预期的问题还是文档问题/错误

#![feature(try_from)]
use std::convert::TryFrom;
use std::num::TryFromIntError;

enum MyEnum {
    A,
    B,
    C,
}

impl TryFrom<u16> for OpCode {
    type Error = TryFromIntError;
    fn try_from(val: u16) -> Result<Self, Self::Error> {
        match val {
            0 => Ok(MyEnum::A),
            1 => Ok(MyEnum::B),
            2 => Ok(MyEnum::C),
            _ => Err(TryFromIntError),
        }
    }
}

tryFromInteror
是一个带有私有字段的元组结构(因此文档中的
)。该类型不公开任何构造实例的方法(例如
new
方法或
Default
实现),因此无法直接实例化该类型。也许原因是为了保留在将来向错误添加详细信息的可能性(目前,唯一的私有字段是
()
,因此错误没有详细信息)。

那么,在这些类型的情况下,应该使用什么样的错误类型呢?只是
std::error::error
error[E0423]: expected function, found struct `TryFromIntError`
  --> src/main.rs:18:22
   |
18 |             _ => Err(TryFromIntError()),
   |                      ^^^^^^^^^^^^^^^ constructor is not visible here due to private fields