Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use TryInto to avoid unsafe. #507

Merged
merged 2 commits into from
Jan 17, 2021
Merged

Use TryInto to avoid unsafe. #507

merged 2 commits into from
Jan 17, 2021

Commits on Jan 4, 2021

  1. Use TryInto to avoid unsafe.

    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
    
    Closes uuid-rs#488.
    Gaelan committed Jan 4, 2021
    Configuration menu
    Copy the full SHA
    0550c21 View commit details
    Browse the repository at this point in the history
  2. Remove TryFrom import.

    Gaelan committed Jan 4, 2021
    Configuration menu
    Copy the full SHA
    f93a2ad View commit details
    Browse the repository at this point in the history