7 个不稳定版本
0.4.1 | 2023年10月24日 |
---|---|
0.4.0 | 2023年10月24日 |
0.3.1 | 2019年2月10日 |
0.2.0 | 2018年12月19日 |
0.0.2 | 2018年3月25日 |
#479 in 编码
21KB
355 行
字节转换工具
该crate提供了一个简单的宏,可以接受多个 const-expr 值作为输入,并在编译时将它们合并成一个连续的字节数组。支持所有原始类型,并且与 #[no_std] 兼容。
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'!',
]);
支持类型
所有原始类型(作为字面量或任何其他 const-expr 值)以及 [u8; N]
和 &[u8]
值。
- 未指定后缀的数字默认为
i32
整数和f64
浮点数。 bool
值被转换为u8
。- 使用 UTF-8 编码写入
str
和char
值。
字节序
bytify!
总是使用当前目标机的本地字节序来写入数据。要切换到小端/大端字节序,分别使用 bytify_le!
或 bytify_be!
。
use bytify::{bytify_be, bytify_le};
assert_eq!(bytify_le!(1), [0x01, 0x00, 0x00, 0x00]);
assert_eq!(bytify_be!(1), [0x00, 0x00, 0x00, 0x01]);
常量和静态变量
use bytify::bytify;
bytify!(const NO_EVIL: '🙈', '🙉', '🙊');
assert_eq!(NO_EVIL, [0xF0, 0x9F, 0x99, 0x88, 0xF0, 0x9F, 0x99, 0x89, 0xF0, 0x9F, 0x99, 0x8A]);
依赖项
~290KB