pub trait Product<A = Self>: Sized {
// Required method
fn product<I>(iter: I) -> Self
where I: Iterator<Item = A>;
}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".
Implementors§
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 k256::arithmetic::scalar::Scalar
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 Product for f16
impl Product for f32
impl Product for f64
impl Product for f128
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<'a, E> Product<&'a Field<E>> for Field<E>where
E: Environment,
impl<'a, E> Product<&'a Scalar<E>> for snarkvm_console_algorithms::Scalar<E>where
E: Environment,
impl<'a, P> Product<&'a Fp2<P>> for Fp2<P>where
P: Fp2Parameters,
impl<'a, P> Product<&'a Fp6<P>> for Fp6<P>where
P: Fp6Parameters,
impl<'a, P> Product<&'a Fp12<P>> for Fp12<P>where
P: Fp12Parameters,
impl<'a, P> Product<&'a Fp256<P>> for Fp256<P>where
P: Fp256Parameters,
impl<'a, P> Product<&'a Fp384<P>> for Fp384<P>where
P: Fp384Parameters,
impl<'a, const N: usize> Product<&'a Simd<f32, N>> for Simd<f32, N>
impl<'a, const N: usize> Product<&'a Simd<f64, N>> for Simd<f64, N>
impl<'a, const N: usize> Product<&'a Simd<i8, N>> for Simd<i8, N>
impl<'a, const N: usize> Product<&'a Simd<i16, N>> for Simd<i16, N>
impl<'a, const N: usize> Product<&'a Simd<i32, N>> for Simd<i32, N>
impl<'a, const N: usize> Product<&'a Simd<i64, N>> for Simd<i64, N>
impl<'a, const N: usize> Product<&'a Simd<isize, N>> for Simd<isize, N>
impl<'a, const N: usize> Product<&'a Simd<u8, N>> for Simd<u8, N>
impl<'a, const N: usize> Product<&'a Simd<u16, N>> for Simd<u16, N>
impl<'a, const N: usize> Product<&'a Simd<u32, N>> for Simd<u32, N>
impl<'a, const N: usize> Product<&'a Simd<u64, N>> for Simd<u64, N>
impl<'a, const N: usize> Product<&'a Simd<usize, N>> for Simd<usize, N>
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.