Crate coalesce [−] [src]
Coalesce allows you to unify disjoint types on the stack.
It is often useful to return different implementations of a common trait such as
Iterator or Read from conditional branches. The coalesce! macro makes it
easy to unify them into a common trait object:
#[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); }
Macros
| coalesce! |
Coalesces multiple values into one common (often borrowed) type. |
Enums
| Coalesce0 | |
| Coalesce1 | |
| Coalesce2 | |
| Coalesce3 | |
| Coalesce4 | |
| Coalesce5 | |
| Coalesce6 | |
| Coalesce7 | |
| Coalesce8 | |
| Coalesce9 |