1 个不稳定版本
0.1.0 | 2022年10月4日 |
---|
5 在 #coproduct
3KB
Coproduct
你是否曾经遇到过这样的情况,想拥有两个仅少数变体不同的枚举?通常这会涉及到大量的重复和样板代码。不再是这样了!Coproduct允许你轻松地描述它们并在它们之间进行转换!
use coproduct::{Coproduct, MkUnion, Union};
#[derive(Debug)]
struct A;
#[derive(Debug)]
struct B;
#[derive(Debug)]
struct C;
#[derive(Debug)]
struct D;
type ABC = MkUnion!(A, B, C);
fn main() {
let abc: Coproduct<ABC> = Coproduct::inject(A);
let abcd: Coproduct<Union<D, ABC>> = abc.embed();
println!("{:?}", abcd);
}
更多详情请查看文档。
依赖关系
~1.5MB
~36K SLoC