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