Skip to main content

Product

Trait Product 

1.12.0Source
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.0Source

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", so this trait is not object safe.

Implementors

1.12.0Source

impl Product for f16

1.12.0Source

impl Product for f32

1.12.0Source

impl Product for f64

1.12.0Source

impl Product for f128

1.12.0Source

impl Product for i8

1.12.0Source

impl Product for i16

1.12.0Source

impl Product for i32

1.12.0Source

impl Product for i64

1.12.0Source

impl Product for i128

1.12.0Source

impl Product for isize

1.12.0Source

impl Product for u8

1.12.0Source

impl Product for u16

1.12.0Source

impl Product for u32

1.12.0Source

impl Product for u64

1.12.0Source

impl Product for u128

1.12.0Source

impl Product for usize

1.91.0Source

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.0Source

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.0Source

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.0Source

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.0Source

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.0Source

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.0Source

impl Product for Wrapping<i8>

1.14.0Source

impl Product for Wrapping<i16>

1.14.0Source

impl Product for Wrapping<i32>

1.14.0Source

impl Product for Wrapping<i64>

1.14.0Source

impl Product for Wrapping<i128>

1.14.0Source

impl Product for Wrapping<isize>

1.14.0Source

impl Product for Wrapping<u8>

1.14.0Source

impl Product for Wrapping<u16>

1.14.0Source

impl Product for Wrapping<u32>

1.14.0Source

impl Product for Wrapping<u64>

1.14.0Source

impl Product for Wrapping<u128>

1.14.0Source

impl Product for Wrapping<usize>

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.12.0Source

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

1.91.0Source

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.0Source

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.0Source

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.0Source

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.0Source

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.0Source

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.0Source

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

1.14.0Source

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

1.14.0Source

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

1.14.0Source

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

1.14.0Source

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

1.14.0Source

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

1.14.0Source

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

1.14.0Source

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

1.14.0Source

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

1.14.0Source

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

1.14.0Source

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

1.14.0Source

impl<'a> Product<&'a Wrapping<usize>> for Wrapping<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.37.0Source

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

1.16.0Source

impl<T, U, E> Product<Result<U, E>> for Result<T, E>
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>