### What it does
Checks for duplicate open options as well as combinations
that make no sense.

### Why is this bad?
In the best case, the code will be harder to read than
necessary. I don't know the worst case.

### Example
```
use std::fs::OpenOptions;

OpenOptions::new().read(true).truncate(true);
```