generator_light/
generator_state.rs1#[derive(Debug)]
2pub enum GeneratorState<Y, R> {
3 Yield(Y),
4 Complete(R),
5}
6
7impl<Y, R> GeneratorState<Y, R> {
8 pub fn map_yield<U>(self, f: impl FnOnce(Y) -> U) -> GeneratorState<U, R> {
9 match self {
10 GeneratorState::Yield(y) => GeneratorState::Yield(f(y)),
11 GeneratorState::Complete(r) => GeneratorState::Complete(r),
12 }
13 }
14
15 pub fn map_complete<U>(self, f: impl FnOnce(R) -> U) -> GeneratorState<Y, U> {
16 match self {
17 GeneratorState::Yield(y) => GeneratorState::Yield(y),
18 GeneratorState::Complete(r) => GeneratorState::Complete(f(r)),
19 }
20 }
21}