I'd be ok with 
```rust
for (i, x) in version.build.iter().enumerate() {
    if i != 0 { ... }
    if_ok!( ... ) 
}
```

which avoids much of the imperative loopiness.