Skip to main content

SumLender

Trait SumLender 

Source
pub trait SumLender<L: Lender>: Sized {
    // Required method
    fn sum_lender(lender: L) -> Self;
}
Expand description

Sums lends of a Lender into a single Self.

This trait is similar to core::iter::Sum, but for Lenders.

§Examples

struct I32Sum(pub i32);
impl<'lend> Lending<'lend> for I32Sum {
   type Lend = &'lend i32;
}
impl<L: Lender> SumLender<L> for I32Sum
where
    for<'all> L: Lending<'all, Lend = &'all i32>,
{
    fn sum_lender(lender: L) -> Self {
        I32Sum(lender.fold(0, |acc, x| acc + *x))
    }
}
let e = lender::empty::<lend!(&'lend i32)>();
assert_eq!(I32Sum::sum_lender(e).0, 0);

Required Methods§

Source

fn sum_lender(lender: L) -> Self

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§