pub trait Product<A = Self>: Sized {
// Required method
fn product<I>(iter: I) -> Self
where I: Iterator<Item = A>;
}
mtls
only.Expand description
Trait to represent types that can be created by multiplying elements of an iterator.
This trait is used to implement Iterator::product()
. Types which implement
this trait can be generated by using the product()
method on an iterator.
Like FromIterator
, this trait should rarely be called directly.
Required Methods§
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§
impl Product for f32
impl Product for f64
impl Product for i8
impl Product for i16
impl Product for i32
impl Product for i64
impl Product for i128
impl Product for isize
impl Product for u8
impl Product for u16
impl Product for u32
impl Product for u64
impl Product for u128
impl Product for usize
impl Product for Saturating<u8>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl Product for Saturating<u16>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl Product for Saturating<u32>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl Product for Saturating<u64>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl Product for Saturating<u128>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl Product for Saturating<usize>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl Product for Wrapping<i8>
impl Product for Wrapping<i16>
impl Product for Wrapping<i32>
impl Product for Wrapping<i64>
impl Product for Wrapping<i128>
impl Product for Wrapping<isize>
impl Product for Wrapping<u8>
impl Product for Wrapping<u16>
impl Product for Wrapping<u32>
impl Product for Wrapping<u64>
impl Product for Wrapping<u128>
impl Product for Wrapping<usize>
impl<'a> Product<&'a f32> for f32
impl<'a> Product<&'a f64> for f64
impl<'a> Product<&'a i8> for i8
impl<'a> Product<&'a i16> for i16
impl<'a> Product<&'a i32> for i32
impl<'a> Product<&'a i64> for i64
impl<'a> Product<&'a i128> for i128
impl<'a> Product<&'a isize> for isize
impl<'a> Product<&'a u8> for u8
impl<'a> Product<&'a u16> for u16
impl<'a> Product<&'a u32> for u32
impl<'a> Product<&'a u64> for u64
impl<'a> Product<&'a u128> for u128
impl<'a> Product<&'a usize> for usize
impl<'a> Product<&'a Saturating<u8>> for Saturating<u8>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl<'a> Product<&'a Saturating<u16>> for Saturating<u16>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl<'a> Product<&'a Saturating<u32>> for Saturating<u32>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl<'a> Product<&'a Saturating<u64>> for Saturating<u64>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl<'a> Product<&'a Saturating<u128>> for Saturating<u128>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.
impl<'a> Product<&'a Saturating<usize>> for Saturating<usize>
The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold
directly.