Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
507: Use TryInto to avoid unsafe. r=kinggoesgaming a=Gaelan <!-- 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 Previously, to_fields and to_fields_le used unsafe to convert a &[u8] into a &[u8; 8]. Now that we're only supporting Rust versions where TryInto is stable, we can use try_into().unwrap() instead, making uuid entirely safe Rust. In release mode, the compiler detects that the slice will always be the correct size, so try_into can never fail. Thus, the unwrap is optimized out and we end up with the exact same assembly as the unsafe block. Godbolt output showing the resulting assembly: https://godbolt.org/z/nWxT6W # Motivation Makes UUID entirely safe Rust. With this PR, # Tests All existing tests pass. Doesn't add any new functionality, so that should be sufficient. Assuming the Godbolt test is consistent with what happens in the context of the larger crate, this shouldn't change the resulting binary at all. # Related Issue(s) Closes #488. Co-authored-by: Gaelan Steele <gbs@canishe.com>
- Loading branch information