Expand description
This crate provides a simple macro that can take multiple const-expr values as an input and merge them all together into a continuous byte array at compile-time. Supports all primitive types and is #[no_std] compatible.
use bytify::bytify;
const CAKE: char = '🎂';
assert_eq!(bytify!("The ", CAKE, " is a lie!"), [
b'T', b'h', b'e',
b' ',
0xF0, 0x9F, 0x8E, 0x82,
b' ',
b'i', b's',
b' ',
b'a',
b' ',
b'l', b'i', b'e',
b'!',
]);§Supported types
All primitive types (as literals or any other const-expr values) as well as [u8; N] and &[u8] values.
- Unsuffixed numbers are inferred to be
i32for integers andf64for floats. boolvalues are cast tou8.- UTF-8 encoding is used to write
strandcharvalues.
§Endianness
bytify! always writes data using current target’s native endianness.
To switch to little/big endianness use bytify_le! or bytify_be! respectively.
use bytify::{bytify_be, bytify_le};
assert_eq!(bytify_le!(1), [0x01, 0x00, 0x00, 0x00]);
assert_eq!(bytify_be!(1), [0x00, 0x00, 0x00, 0x01]);§Constants and statics
use bytify::bytify;
bytify!(const NO_EVIL: '🙈', '🙉', '🙊');
assert_eq!(NO_EVIL, [0xF0, 0x9F, 0x99, 0x88, 0xF0, 0x9F, 0x99, 0x89, 0xF0, 0x9F, 0x99, 0x8A]);Macros§
- bytify
- This macro can take multiple const-expr values as an input and merge them all together into a continuous byte array at compile-time. Supports all primitive types and is #[no_std] compatible.
- bytify_
be - This macro is a big endianness version of
bytify!macro. - bytify_
le - This macro is a little endianness version of
bytify!macro.