Skip to main content

smallest

Function smallest 

Source
pub const fn smallest<T>(…: impl SmallestArgs<Item = T>) -> T
where 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.