2 个版本
使用旧的 Rust 2015
0.1.1 | 2015 年 8 月 23 日 |
---|---|
0.1.0 | 2015 年 8 月 6 日 |
#16 in #either
23 每月下载量
用于 stack
8KB
110 行
coalesce
coalesce
允许轻松统一不重叠的类型,通常用于将多个具体实例组合成一个共同的特质对象。您可以对每个项目运行任意代码块,请参阅API 文档以获取示例用法。
lib.rs
:
Coalesce 允许您在堆栈上统一不重叠的类型。
通常需要从条件分支返回共同特质的不同的实现,例如 Iterator
或 Read
。 coalesce!
宏使它们轻松统一成一个共同的特质对象
#[macro_use]
extern crate coalesce;
use coalesce::Coalesce2;
use std::iter::repeat;
let mut i = if some_condition() {
Coalesce2::A(repeat(5u32).take(2))
} else {
Coalesce2::B(0u32..8)
};
let i = coalesce!(2 => |ref mut i| i as &mut Iterator<Item=u32>);
for x in i {
println!("{}", x);
}