Skip to content

Conversation

@petoknm
Copy link

@petoknm petoknm commented Jan 14, 2022

Currently we can't do this because const variables cannot refer to statics (inside the macro expansion):

const A: &[u8] = &base16!("55aa");
const B: [u8; 2] = base16!("55aa");

This PR, changes that, so after the macro expansion it looks like a raw byte array. This allows us to create const and static slices as well as fixed size arrays.

Creates a slight change in API, now we are expanding into a raw fixed size array, so to get a slice it requires an extra &:
Before:

let res: &[u8] = base16!("55aa");

After:

let res: &[u8] = &base16!("55aa");

I personally think that expanding the use case of this library from just static slices to const and static slices and fixed size arrays is worth this API change. But of course I would like to also hear your opinion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant