Mention float workaround in Iterator::{min,max}

This commit is contained in:
Smitty
2021-05-26 17:15:54 -04:00
parent f6a28aa403
commit e7a3ada210
+26 -2
View File
@@ -2602,6 +2602,18 @@ fn check<T>(
/// If several elements are equally maximum, the last element is
/// returned. If the iterator is empty, [`None`] is returned.
///
/// Note that [`f32`]/[`f64`] doesn't implement [`Ord`] due to NaN being
/// incomparable. You can work around this by using [`Iterator::reduce`]:
/// ```
/// assert_eq!(
/// vec![2.4, f32::NAN, 1.3]
/// .into_iter()
/// .reduce(|a, b| f32::max(a, b))
/// .unwrap(),
/// 2.4
/// );
/// ```
///
/// # Examples
///
/// Basic usage:
@@ -2625,8 +2637,20 @@ fn max(self) -> Option<Self::Item>
/// Returns the minimum element of an iterator.
///
/// If several elements are equally minimum, the first element is
/// returned. If the iterator is empty, [`None`] is returned.
/// If several elements are equally minimum, the first element is returned.
/// If the iterator is empty, [`None`] is returned.
///
/// Note that [`f32`]/[`f64`] doesn't implement [`Ord`] due to NaN being
/// incomparable. You can work around this by using [`Iterator::reduce`]:
/// ```
/// assert_eq!(
/// vec![2.4, f32::NAN, 1.3]
/// .into_iter()
/// .reduce(|a, b| f32::min(a, b))
/// .unwrap(),
/// 1.3
/// );
/// ```
///
/// # Examples
///