3个版本 (破坏性更新)
0.3.0 | 2019年1月22日 |
---|---|
0.2.0 | 2018年12月12日 |
0.1.0 | 2018年10月29日 |
#80 in #auto
用于 4 crates
6KB
81 行
auto_from
这个库导出一个用于 From
的 derive 宏。它用于自动生成只包含一个字段的枚举变体的 std::convert::From
实现。目前它适用于元组或结构体变体。以下是一个小例子
use auto_from::From;
#[auto_from]
#[derive(Debug, PartialEq, From)]
enum Foo {
Int(i32),
Long { value: i64 },
}
fn main() {
assert_eq!(Foo::Int(24), Foo::from(24i32));
assert_eq!(Foo::Long{ value: 24 }, Foo::from(24i64));
}
当需要构建需要编写许多 From
实现的错误枚举,或在代码中跨多个位置使用许多 .map_error(|e| MyError::Variant(e))
调用时,这应该非常有用。这个crate简化了这一过程。
lib.rs
:
这个库允许您为枚举推导出 From
特性。它用于自动生成只包含一个字段的枚举变体的 std::convert::From
实现。目前它适用于元组或结构体变体。以下是一个小例子
use auto_from::From;
#[derive(Debug, PartialEq, From)]
enum Foo {
Int(i32),
Long { value: i64 },
}
assert_eq!(Foo::Int(24), Foo::from(24i32));
assert_eq!(Foo::Long{ value: 24 }, Foo::from(24i64));
当需要构建需要编写许多 From
实现的错误枚举,或在代码中跨多个位置使用许多 .map_error(|e| MyError::Variant(e))
调用时,这应该非常有用。这个crate简化了这一过程。
依赖项
~2MB
~46K SLoC