When you parse the str, you create a Result<i32, std::num::ParseIntError>. The Result::map method changes the Ok value if it is Ok, and leaves Err untouched if not. At this point, it is still a Result. You match the Result, and the .. just means "match all values. (In every field of the n-ary tuple.)" It is similar to _.
I am a little curious why they used it in that example. There's still only one value in the Err variant, even if that value is a struct in this case. Is this a common idiom, for people to default to .. instead of _ since it's more general? (not that this matters much anyways)