3个版本
0.1.2 | 2023年6月7日 |
---|---|
0.1.1 | 2023年6月7日 |
0.1.0 | 2023年6月7日 |
2383 in Rust模式
8KB
133 行
easy-conv
通过impl From<A> for B减少样板代码。
快速开始
是否厌倦了这样的代码?
enum Choices {
Alpha(TypeA),
Bravo(TypeB),
Charlie(TypeC),
}
impl From<TypeA> for Choices {
fn from(val: TypeA) -> Self {
Choices::Alpha(val)
}
}
impl From<TypeB> for Choices {
fn from(val: TypeB) -> Self {
Choices::Bravo(val)
}
}
impl From<TypeC> for Choices {
fn from(val: TypeC) -> Self {
Choices::Charlie(val)
}
}
这个怎么样?
enum Choices {
Alpha(TypeA),
Bravo(TypeB),
Charlie(TypeC),
}
newtype_wrap!(Choices, Alpha, TypeA);
newtype_wrap!(Choices, Bravo, TypeB);
newtype_wrap!(Choices, Charlie, TypeC);
更好吗?我确实是这么认为的。
还有newtype_wrap_from_any
和chained_into
宏,它们各自做着自己独特的小事情。请参见文档。
贡献
如果您有任何其他涉及大量样板代码的类型转换需求,请随时提出问题(或者更好的是,提出一个PR)。也许我们可以添加一个宏来使您和其他人的生活更轻松。