sumtype 0.4.0

Generate zerocost anonymous sum types that implement common traits
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
#![allow(clippy::manual_repeat_n)]
use sumtype::sumtype;

#[allow(unused)]
#[sumtype(sumtype::traits::Iterator + sumtype::traits::Clone)]
fn f(a: usize) -> impl Iterator<Item = usize> + Clone {
    match a {
        0 => sumtype!(std::iter::empty::<usize>()),
        1 => sumtype!(std::iter::once(a)),
        _ => sumtype!(std::iter::repeat(a).take(a)),
    }
}