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§
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.