1 2 3 4 5 6 7 8 9 10 11 12 13 14
use crate::prelude::*;
impl<A> Foldable<A> for Option<A> {
fn foldr<F, B>(self, folder: F, init: B) -> B
where
F: Fn(B, A) -> B,
{
self.into_iter().fold(init, folder)
}
}
impl<M: Monoid> FoldableExtMonoid<M> for Option<M> {}
impl<A: PartialEq> FoldableExtEq<A> for Option<A> {}
impl<A: PartialOrd> FoldableExtOrd<A> for Option<A> {}