#字节序 #小端 #字节 #大端 #二进制 #无分配

无std endian-num

字节序感知数值类型

4个版本

0.1.2 2024年7月17日
0.1.1 2024年5月24日
0.1.0 2024年5月24日
0.0.0 2024年5月23日

编码中排名403

Download history 506/week @ 2024-05-22 122/week @ 2024-05-29 205/week @ 2024-06-05 180/week @ 2024-06-12 320/week @ 2024-06-19 299/week @ 2024-06-26 194/week @ 2024-07-03 208/week @ 2024-07-10 418/week @ 2024-07-17 134/week @ 2024-07-24 238/week @ 2024-07-31 227/week @ 2024-08-07 93/week @ 2024-08-14

每月下载量703
5crate使用(3个直接使用)

MIT/Apache

69KB
878

endian-num

Crates.io docs.rs CI

这个crate提供了Be(大端)和Le(小端)字节序感知数值类型。

与专注于编码和解码数字到字节流的流行crate byteorder 不同,此crate专注于数字的状态。这对于创建包含特定字节序字段的struct非常有用,例如在virtio中。与专注于状态的其它crate相比,此crate遵循从core::num的命名约定,功能丰富,并对每个方法进行了广泛的文档说明。

核心API大致如下(对应于Be

#[repr(transparent)]
pub struct<T> Le(pub T);

impl Le<T: Integer> {
    pub const fn from_ne(n: T) -> Self;
    pub const fn from_be(n: Be<T>) -> Self;

    pub const fn to_ne(self) -> T;
    pub const fn to_be(self) -> Be<T>;

    pub const fn to_be_bytes(self) -> [u8; mem::size_of::<Self>()];
    pub const fn to_le_bytes(self) -> [u8; mem::size_of::<Self>()];
    pub const fn to_ne_bytes(self) -> [u8; mem::size_of::<Self>()];

    pub const fn from_be_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self;
    pub const fn from_le_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self;
    pub const fn from_ne_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self;
}

这些类型还实现了来自core::cmpcore::convertcore::fmtcore::ops的适当特质,并提供了额外的计算辅助方法。

有关API文档,请参阅文档

许可协议

许可协议为以下之一

供您选择。

贡献

除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交并包含在工作中的任何贡献,均应按上述方式双许可,无需额外条款或条件。

依赖关系

~0–330KB