binary_macros icon indicating copy to clipboard operation
binary_macros copied to clipboard

Support generating const and fixed size arrays

Open petoknm opened this issue 4 years ago • 0 comments

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.

petoknm avatar Jan 14 '22 13:01 petoknm