Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
503: Un-breaking-change Uuid::new_v4 r=KodrAus a=CAD97 <!-- If this PR is a breaking change, ensure that you are opening it against the `breaking` branch. If the pull request is incomplete, prepend the Title with WIP: --> **I'm submitting a(n)** refactor # Description #447 changed from using `rand::thread_rng` to using `getrandom` in `Uuid::new_v4`. This also changed the return type from `Uuid` to `Result<Uuid, getrandom::Error>`. This PR reverts the signature to the simpler `new_v4() -> Uuid`. # Motivation This signature is much simpler to use, and avoids a breaking change. `getrandom` is _highly_ unlikely to fail, and previously we used `thread_rng` here, which also panics if it fails to initialize from the OS entropy source. If `getrandom` fails, it is highly unlikely that any program creating v4 UUIDs has any reasonable recovery other than to abort, as the system is in a broken state. If users absolutely need to recover in this situation, they can call `getrandom` first themselves to make sure that their system is working, or generate the bytes themselves and create the UUID from those bytes. Additionally, actually wrapping `getrandom::Error` in `uuid::Error` comes with its own fun set of problems, described in #502. # Tests N/A # Related Issue(s) #475: this undoes the breaking change to `Uuid::new_v4`, thus making the requested publish a patch update Closes #502: alternate approach to the same TODO Co-authored-by: CAD97 <cad97@cad97.com>
- Loading branch information