# manual-abs-diff

Prefer absDiff over equivalent branching subtraction

Choosing the subtraction order with a comparison manually computes an unsigned absolute difference.
Instead, you SHOULD call `.absDiff()` on one operand.

- Category: style
- Level: warning
- Fix: automatic
- Scope: module

## Reported

```ds title="main.ds"
function distance(left: uint32, right: uint32): uint32 {
    return left > right ? left - right : right - left;
}
```

## Accepted

```ds title="main.ds"
function distance(left: uint32, right: uint32): uint32 {
    return left.absDiff(right);
}
```

## Prior art

- [Clippy · manual_abs_diff](https://rust-lang.github.io/rust-clippy/master/index.html#manual_abs_diff)

[language/linter/src/rules/style/manual_abs_diff.rs:8](https://github.com/destack-sh/destack/blob/main/language/linter/src/rules/style/manual_abs_diff.rs#L8)
