1
2
3
4
5
6
7
8
9
10
11
12
13
14
use super::*;

pub trait Fold: ListFn {
    fn fold(mut self) -> Self::End {
        loop {
            match self.next() {
                ListState::Some(some) => self = some.next,
                ListState::End(end) => return end,
            }
        }
    }
}

impl<S: ListFn> Fold for S {}