Rust doesn't currently enforce pure functions at all; there is no 'pure' keyword. Here is an old mailing list post related to this decision - note that because it is 2 years old and Rust has been in a state of constant flux for most of that time, it may not fully reflect current thinking.
Years ago we had pure functions that have since been replaced with our current function model. I'm betting that we are still reserving "pure" from that time. I haven't heard of anyone proposing to use it for something, so should probably unreserve it.
Rust used to work that way several years ago, but it proved too inconvenient and was removed.