### What it does
Identifies good opportunities for a clamp function from std or core, and suggests using it.

### Why is this bad?
clamp is much shorter, easier to read, and doesn't use any control flow.

### Known issue(s)
If the clamped variable is NaN this suggestion will cause the code to propagate NaN
rather than returning either `max` or `min`.

`clamp` functions will panic if `max < min`, `max.is_nan()`, or `min.is_nan()`.
Some may consider panicking in these situations to be desirable, but it also may
introduce panicking where there wasn't any before.

### Examples
```
if input > max {
    max
} else if input < min {
    min
} else {
    input
}
```

```
input.max(min).min(max)
```

```
match input {
    x if x > max => max,
    x if x < min => min,
    x => x,
}
```

```
let mut x = input;
if x < min { x = min; }
if x > max { x = max; }
```
Use instead:
```
input.clamp(min, max)
```