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.list() { List::Some(_, next) => self = next, List::End(end) => return end, } } } } impl<S: ListFn> Fold for S {}
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.list() { List::Some(_, next) => self = next, List::End(end) => return end, } } } } impl<S: ListFn> Fold for S {}