1 个不稳定版本
0.1.0 | 2024年5月4日 |
---|
#12 in #storing
6KB
lib-endian
这是一个在处理字节序或获取当前目标字节序时存储值的简单库。
示例
- 通过
Endian::NATIVE
获取当前目标的Endian
。
use lib_endian::Endian;
const NE: Endian = Endian::NATIVE;
- 通过
Endian::native_or_reversed(bool)
获取本地Endian
或反转的Endian
。
use lib_endian::Endian;
const REVERSE: bool = true;
const NE_REV: Endian = Endian::native_or_reversed(REVERSE);
assert_eq!(NE_REV, Endian::NATIVE.reverse());
const NE: Endian = Endian::native_or_reversed(!REVERSE);
assert_eq!(NE, Endian::NATIVE);
- 通过
.reverse()
或!
反转Endian
。
use lib_endian::Endian;
const BE: Endian = Endian::Little.reverse();
let le = !Endian::Big;
assert_eq!(BE, !le);
- 通过
.is(...)
、==
或!=
比较两个Endian
。
use lib_endian::Endian;
const BE: Endian = Endian::Big;
const EQ: bool = BE.is(Endian::Big);
const NEQ: bool = !Endian::Little.is(BE);
let eq = Endian::Big == BE;
let neq = BE != Endian::Little;
assert!(EQ & NEQ & eq & neq);
注意
在 常量表达式 中不能使用 !
、==
或 !=
,因为它们是通过 traits 实现的,而在 Rust 版本 1.78.0
中,它们至少不包含 const fn
。
因此,在 常量表达式 中,使用 v.reverse()
来替换 !v
,使用 a.is(b)
来替换 a==b
,使用 !a.is(b)
来替换 a!=b
。