#traits #either

coalesce

通过共同特质组合不重叠的类型

2 个版本

使用旧的 Rust 2015

0.1.1 2015 年 8 月 23 日
0.1.0 2015 年 8 月 6 日

#16 in #either

23 每月下载量
用于 stack

MIT 许可证

8KB
110

coalesce

travis-badge release-badge docs-badge license-badge

coalesce 允许轻松统一不重叠的类型,通常用于将多个具体实例组合成一个共同的特质对象。您可以对每个项目运行任意代码块,请参阅API 文档以获取示例用法。


lib.rs:

Coalesce 允许您在堆栈上统一不重叠的类型。

通常需要从条件分支返回共同特质的不同的实现,例如 IteratorReadcoalesce! 宏使它们轻松统一成一个共同的特质对象

#[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);
}

没有运行时依赖