The Cargo Book says this about crates with semvers less than 1.0.0:
Before you reach 1.0.0, anything goes, but if you make breaking changes, increment the minor version. In Rust, breaking changes include adding fields to structs or variants to enums.
What about structs or enums that aren't part of the public API? I presume I can freely add a variant to an enum that isn't exposed publicly without that being a breaking change.