pub const fn smallest<T>(…: impl SmallestArgs<Item = T>) -> Twhere
T: Ord,🔬This is a nightly-only experimental API. (
cmp_splat)Available on crate features
crypto and std only.Expand description
Compares and returns the minimum of the provided values.
Returns the first argument if the comparison determines them to be equal.
Internally uses Ord::min.
§Examples
#![feature(cmp_splat)]
use std::cmp;
assert_eq!(cmp::smallest(1), 1);
assert_eq!(cmp::smallest(1, 2), 1);
assert_eq!(cmp::smallest(3, 2, 1), 1);
assert_eq!(cmp::smallest(1, 2, 3, 4), 1);#![feature(cmp_splat)]
use std::cmp::{self, Ordering};
#[derive(Eq)]
struct Equal(&'static str);
impl PartialEq for Equal {
fn eq(&self, other: &Self) -> bool { true }
}
impl PartialOrd for Equal {
fn partial_cmp(&self, other: &Self) -> Option<Ordering> { Some(Ordering::Equal) }
}
impl Ord for Equal {
fn cmp(&self, other: &Self) -> Ordering { Ordering::Equal }
}
assert_eq!(cmp::smallest(Equal("v1"), Equal("v2")).0, "v1");§Stability
This function is added in its current form as an experiment in variadic functions.
In a future iteration of the feature, this function may be removed in favour of
making min itself variadic instead.