I guess this can be

```rust
let one = util::replace(self, Zero);
match one {
    One(v1) => util::replace(self, Many(~[v1, v])),
    _ => unreachable!()
}
```