min_by in std::cmp - Rust
Description: Returns the minimum of two values with respect to the specified comparison function.

## min_by

# Function min_by

1.53.0 (const: unstable) · Source

    pub fn min_by<T, F>(v1: T, v2: T, compare: F) -> Twhere
        F: FnOnce(&T, &T) -> Ordering,

Expand description

Returns the minimum of two values with respect to the specified comparison function.

Returns the first argument 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

    use std::cmp;

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

    let result = cmp::min_by(2, -1, abs_cmp);
    assert_eq!(result, -1);

    let result = cmp::min_by(2, -3, abs_cmp);
    assert_eq!(result, 2);

    let result = cmp::min_by(1, -1, abs_cmp);
    assert_eq!(result, 1);