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。