Skip to main content

Product

Trait Product 

1.12.0 (const: unstable) 路 Source
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搂

1.12.0 (const: unstable) 路 Source

fn product<I>(iter: I) -> Self
where I: Iterator<Item = A>,

Takes an iterator and generates Self from the elements by multiplying the items.

Dyn Compatibility搂

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors搂

1.91.0 路 Source搂

impl Product for Saturating<u8>

The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold directly.

1.91.0 路 Source搂

impl Product for Saturating<u16>

The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold directly.

1.91.0 路 Source搂

impl Product for Saturating<u32>

The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold directly.

1.91.0 路 Source搂

impl Product for Saturating<u64>

The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold directly.

1.91.0 路 Source搂

impl Product for Saturating<u128>

The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold directly.

1.91.0 路 Source搂

impl Product for Saturating<usize>

The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use Iterator::fold directly.

1.14.0 路 Source搂

impl Product for Wrapping<i8>

1.14.0 路 Source搂

impl Product for Wrapping<i16>

1.14.0 路 Source搂

impl Product for Wrapping<i32>

1.14.0 路 Source搂

impl Product for Wrapping<i64>

1.14.0 路 Source搂

impl Product for Wrapping<i128>

1.14.0 路 Source搂

impl Product for Wrapping<isize>

1.14.0 路 Source搂

impl Product for Wrapping<u8>

1.14.0 路 Source搂

impl Product for Wrapping<u16>

1.14.0 路 Source搂

impl Product for Wrapping<u32>

1.14.0 路 Source搂

impl Product for Wrapping<u64>

1.14.0 路 Source搂

impl Product for Wrapping<u128>

1.14.0 路 Source搂

impl Product for Wrapping<usize>

1.12.0 路 Source搂

impl Product for f16

1.12.0 路 Source搂

impl Product for f32

1.12.0 路 Source搂

impl Product for f64

1.12.0 路 Source搂

impl Product for f128

1.12.0 路 Source搂

impl Product for i8

1.12.0 路 Source搂

impl Product for i16

1.12.0 路 Source搂

impl Product for i32

1.12.0 路 Source搂

impl Product for i64

1.12.0 路 Source搂

impl Product for i128

1.12.0 路 Source搂

impl Product for isize

1.12.0 路 Source搂

impl Product for u8

1.12.0 路 Source搂

impl Product for u16

1.12.0 路 Source搂

impl Product for u32

1.12.0 路 Source搂

impl Product for u64

1.12.0 路 Source搂

impl Product for u128

1.12.0 路 Source搂

impl Product for usize

Source搂

impl<'a, const N: usize> Product<&'a Simd<f32, N>> for Simd<f32, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<f64, N>> for Simd<f64, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<i8, N>> for Simd<i8, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<i16, N>> for Simd<i16, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<i32, N>> for Simd<i32, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<i64, N>> for Simd<i64, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<isize, N>> for Simd<isize, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<u8, N>> for Simd<u8, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<u16, N>> for Simd<u16, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<u32, N>> for Simd<u32, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<u64, N>> for Simd<u64, N>

Source搂

impl<'a, const N: usize> Product<&'a Simd<usize, N>> for Simd<usize, N>

1.91.0 路 Source搂

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.

1.91.0 路 Source搂

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.

1.91.0 路 Source搂

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.

1.91.0 路 Source搂

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.

1.91.0 路 Source搂

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.

1.91.0 路 Source搂

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.

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<i8>> for Wrapping<i8>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<i16>> for Wrapping<i16>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<i32>> for Wrapping<i32>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<i64>> for Wrapping<i64>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<i128>> for Wrapping<i128>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<isize>> for Wrapping<isize>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<u8>> for Wrapping<u8>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<u16>> for Wrapping<u16>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<u32>> for Wrapping<u32>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<u64>> for Wrapping<u64>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<u128>> for Wrapping<u128>

1.14.0 路 Source搂

impl<'a> Product<&'a Wrapping<usize>> for Wrapping<usize>

1.12.0 路 Source搂

impl<'a> Product<&'a f16> for f16

1.12.0 路 Source搂

impl<'a> Product<&'a f32> for f32

1.12.0 路 Source搂

impl<'a> Product<&'a f64> for f64

1.12.0 路 Source搂

impl<'a> Product<&'a f128> for f128

1.12.0 路 Source搂

impl<'a> Product<&'a i8> for i8

1.12.0 路 Source搂

impl<'a> Product<&'a i16> for i16

1.12.0 路 Source搂

impl<'a> Product<&'a i32> for i32

1.12.0 路 Source搂

impl<'a> Product<&'a i64> for i64

1.12.0 路 Source搂

impl<'a> Product<&'a i128> for i128

1.12.0 路 Source搂

impl<'a> Product<&'a isize> for isize

1.12.0 路 Source搂

impl<'a> Product<&'a u8> for u8

1.12.0 路 Source搂

impl<'a> Product<&'a u16> for u16

1.12.0 路 Source搂

impl<'a> Product<&'a u32> for u32

1.12.0 路 Source搂

impl<'a> Product<&'a u64> for u64

1.12.0 路 Source搂

impl<'a> Product<&'a u128> for u128

1.12.0 路 Source搂

impl<'a> Product<&'a usize> for usize

1.16.0 路 Source搂

impl<T, U, E> Product<Result<U, E>> for Result<T, E>
where T: Product<U>,

1.37.0 路 Source搂

impl<T, U> Product<Option<U>> for Option<T>
where T: Product<U>,

Source搂

impl<const N: usize> Product for Simd<f32, N>

Source搂

impl<const N: usize> Product for Simd<f64, N>

Source搂

impl<const N: usize> Product for Simd<i8, N>

Source搂

impl<const N: usize> Product for Simd<i16, N>

Source搂

impl<const N: usize> Product for Simd<i32, N>

Source搂

impl<const N: usize> Product for Simd<i64, N>

Source搂

impl<const N: usize> Product for Simd<isize, N>

Source搂

impl<const N: usize> Product for Simd<u8, N>

Source搂

impl<const N: usize> Product for Simd<u16, N>

Source搂

impl<const N: usize> Product for Simd<u32, N>

Source搂

impl<const N: usize> Product for Simd<u64, N>

Source搂

impl<const N: usize> Product for Simd<usize, N>