1个稳定版本
1.0.0 | 2021年4月23日 |
---|
#2163 在 过程宏
13KB
176 行
为枚举类型派生基本的错误类型基础设施。
支持未命名的单元枚举变体,并使用类型定义派生错误类型的 std::fmt::Display
和 std::error:Error
,以及 std::from::From<T>
用于任何具有一个参数(推断为错误类型)的未命名变体(目前通过类型名称是否为Error确定)。
可以使用auto_error属性覆盖默认行为
- format_str接受一个字符串,该字符串成为该变体的格式字符串
- make_from在设置为true时强制派生std::from::From
- err强制std::error::Error实现返回内部类型,在调用source时或在其他情况下将内部类型视为错误类型。
From派生和source返回仅适用于单字段变体。
示例
#[derive(AutoError)]
use autoerror::AutoError;
enum Error {
#[auto_error(format_str="Document not found")]
NotFound,
IO(std::io::Error),
#[auto_error(make_from=true)]
Other(String),
}
依赖项
~1.5MB
~35K SLoC