I actually prefer the invariant section above the definition, but do admit the pre and post in C++ look better.
[1] https://docs.rs/contracts/latest/contracts/