You can use `complements.swap(*front, *back)` if you want. Also, I think this loop can be written as:

```rust
let mut it = seq.iter();
loop {
    match (it.next(), it.next_back()) {
        (Some(front), Some(back)) => complements.swap(*front, *back),
        _ => break // vector exhausted.
    }
}
```

(Which obsoletes my previous two comments.)