binary_macros
binary_macros copied to clipboard
Support generating const and fixed size arrays
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.