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

Make ctors that accept slices infallible using arrays and other breaking changes #536

Merged
merged 8 commits into from Oct 30, 2021

Conversation

KodrAus
Copy link
Member

@KodrAus KodrAus commented Oct 29, 2021

Closes #150 #459 #329 #533

Infallible array inputs

This is a breaking change that changes &[u8] inputs to Uuid methods to &[u8; N]. This lets us make these methods infallible so they can be used in other const functions. If a caller only has a &[u8] to pass in, they can use try_into to convert it into a &[u8; N].

Infallible variant

It's not possible for the variant to ever return None, so we don't need to return an Option for it.

Compact serializer by default

We now serialize a 16 element tuple instead of a slice of bytes in non-human-readable formats.

@KodrAus
Copy link
Member Author

@KodrAus KodrAus commented Oct 29, 2021

While working on this I've also catalogued our unstable dependencies. I think the only public one left is winapi, which is unlikely to change in a hurry, but we should consider shifting it out into an external library that just offers two functions:

pub fn uuid_from_guid(guid: Guid) -> Uuid;

pub fn guid_from_uuid(uuid: Uuid) -> Guid;

@KodrAus KodrAus added the breaking label Oct 29, 2021
@KodrAus KodrAus changed the title Make ctors that accept slices infallible using arrays Make ctors that accept slices infallible using arrays and other breaking changes Oct 29, 2021
@KodrAus KodrAus marked this pull request as ready for review Oct 29, 2021
@KodrAus KodrAus mentioned this pull request Oct 29, 2021
11 tasks
@KodrAus KodrAus merged commit 05ac705 into uuid-rs:main Oct 30, 2021
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant