I have the following two functions:

```
fn plus<T: std::ops::Add>(a: T, b: T) -> <T as std::ops::Add>::Output { a + b }
fn minus<T: std::ops::Sub>(a: T, b: T) -> <T as std::ops::Sub>::Output { a - b }
// let a_plus_abs = |a, b| (if b >= 0 {plus} else {minus})(a, b);
```

And I want to express something similar to this:

```
function plus(a, b) { return a + b; }
function minus(a, b) { return a - b; }
function a_plus_abs_b(a, b) {
return (b >= 0 ? plus : minus)(a, b);
}
```

How can I translate `a_plus_abs_b(a, b)`

to Rust?