minmax_by in std::cmp - Rust
Description: Returns minimum and maximum values with respect to the specified comparison function.

## minmax_by

# Function minmax_by

Source

    pub const fn minmax_by<T, F>(v1: T, v2: T, compare: F) -> [T; 2]where
        F: FnOnce(&T, &T) -> Ordering,

🔬This is a nightly-only experimental API. (`cmp_minmax` #115939)
Expand description

Returns minimum and maximum values with respect to the specified comparison function.

Returns `[v1, v2]` if the comparison determines them to be equal.

The parameter order is preserved when calling the `compare` function, i.e. `v1` is always passed as the first argument and `v2` as the second.

## §Examples

    #![feature(cmp_minmax)]
    use std::cmp;

    let abs_cmp = |x: &i32, y: &i32| x.abs().cmp(&y.abs());

    assert_eq!(cmp::minmax_by(-2, 1, abs_cmp), [1, -2]);
    assert_eq!(cmp::minmax_by(-1, 2, abs_cmp), [-1, 2]);
    assert_eq!(cmp::minmax_by(-2, 2, abs_cmp), [-2, 2]);

    // You can destructure the result using array patterns
    let [min, max] = cmp::minmax_by(-42, 17, abs_cmp);
    assert_eq!(min, 17);
    assert_eq!(max, -42);