5个不稳定版本
0.3.1 | 2019年2月10日 |
---|---|
0.3.0 | 2019年2月10日 |
0.2.0 | 2018年12月19日 |
0.0.2 | 2018年3月25日 |
0.0.1 | 2018年3月19日 |
在#literals中排名150
16KB
328 行
字节转换工具
这个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]);
依赖
约2MB
约49K SLoC