pub trait IteratorProduct<A = Self>: Sized {
// Required method
fn product<I>(iter: I) -> Self
where I: Iterator<Item = A>;
}
Expand description
๐
core
Represents types that can be created by multiplying elements of an iterator.
Re-exported from core
::iter::
Product
โIteratorProduct
.
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 Mat3
impl Product for Mat2
impl Product for Mat3A
impl Product for Mat4
impl Product for Quat
impl Product for Vec3A
impl Product for Vec4
impl Product for Vec2
impl Product for Vec3
impl Product for DMat2
impl Product for DMat3
impl Product for DMat4
impl Product for DQuat
impl Product for DVec2
impl Product for DVec3
impl Product for DVec4
impl Product for I8Vec2
impl Product for I8Vec3
impl Product for I8Vec4
impl Product for I16Vec2
impl Product for I16Vec3
impl Product for I16Vec4
impl Product for IVec2
impl Product for IVec3
impl Product for IVec4
impl Product for I64Vec2
impl Product for I64Vec3
impl Product for I64Vec4
impl Product for U8Vec2
impl Product for U8Vec3
impl Product for U8Vec4
impl Product for U16Vec2
impl Product for U16Vec3
impl Product for U16Vec4
impl Product for UVec2
impl Product for UVec3
impl Product for UVec4
impl Product for U64Vec2
impl Product for U64Vec3
impl Product for U64Vec4
impl Product for USizeVec2
impl Product for USizeVec3
impl Product for USizeVec4
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 Affine2> for Affine2
impl<'a> Product<&'a Affine3A> for Affine3A
impl<'a> Product<&'a Mat3> for Mat3
impl<'a> Product<&'a Mat2> for Mat2
impl<'a> Product<&'a Mat3A> for Mat3A
impl<'a> Product<&'a Mat4> for Mat4
impl<'a> Product<&'a Quat> for Quat
impl<'a> Product<&'a Vec3A> for Vec3A
impl<'a> Product<&'a Vec4> for Vec4
impl<'a> Product<&'a Vec2> for Vec2
impl<'a> Product<&'a Vec3> for Vec3
impl<'a> Product<&'a DAffine2> for DAffine2
impl<'a> Product<&'a DAffine3> for DAffine3
impl<'a> Product<&'a DMat2> for DMat2
impl<'a> Product<&'a DMat3> for DMat3
impl<'a> Product<&'a DMat4> for DMat4
impl<'a> Product<&'a DQuat> for DQuat
impl<'a> Product<&'a DVec2> for DVec2
impl<'a> Product<&'a DVec3> for DVec3
impl<'a> Product<&'a DVec4> for DVec4
impl<'a> Product<&'a I8Vec2> for I8Vec2
impl<'a> Product<&'a I8Vec3> for I8Vec3
impl<'a> Product<&'a I8Vec4> for I8Vec4
impl<'a> Product<&'a I16Vec2> for I16Vec2
impl<'a> Product<&'a I16Vec3> for I16Vec3
impl<'a> Product<&'a I16Vec4> for I16Vec4
impl<'a> Product<&'a IVec2> for IVec2
impl<'a> Product<&'a IVec3> for IVec3
impl<'a> Product<&'a IVec4> for IVec4
impl<'a> Product<&'a I64Vec2> for I64Vec2
impl<'a> Product<&'a I64Vec3> for I64Vec3
impl<'a> Product<&'a I64Vec4> for I64Vec4
impl<'a> Product<&'a U8Vec2> for U8Vec2
impl<'a> Product<&'a U8Vec3> for U8Vec3
impl<'a> Product<&'a U8Vec4> for U8Vec4
impl<'a> Product<&'a U16Vec2> for U16Vec2
impl<'a> Product<&'a U16Vec3> for U16Vec3
impl<'a> Product<&'a U16Vec4> for U16Vec4
impl<'a> Product<&'a UVec2> for UVec2
impl<'a> Product<&'a UVec3> for UVec3
impl<'a> Product<&'a UVec4> for UVec4
impl<'a> Product<&'a U64Vec2> for U64Vec2
impl<'a> Product<&'a U64Vec3> for U64Vec3
impl<'a> Product<&'a U64Vec4> for U64Vec4
impl<'a> Product<&'a USizeVec2> for USizeVec2
impl<'a> Product<&'a USizeVec3> for USizeVec3
impl<'a> Product<&'a USizeVec4> for USizeVec4
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.