#位字段 # #结构体 #生成 #不同 #范围 #头文件

位字段

此软件包提供宏以生成类似位字段的类结构体

25 个版本

使用旧的 Rust 2015

0.16.1 2024 年 7 月 25 日
0.15.0 2024 年 4 月 9 日
0.14.0 2022 年 7 月 11 日
0.13.2 2019 年 5 月 27 日
0.0.1 2014 年 11 月 20 日

#51 in Rust 模式

Download history 56800/week @ 2024-05-04 53211/week @ 2024-05-11 58289/week @ 2024-05-18 60126/week @ 2024-05-25 59647/week @ 2024-06-01 62854/week @ 2024-06-08 61769/week @ 2024-06-15 66987/week @ 2024-06-22 65564/week @ 2024-06-29 67637/week @ 2024-07-06 70972/week @ 2024-07-13 72152/week @ 2024-07-20 70094/week @ 2024-07-27 75975/week @ 2024-08-03 73316/week @ 2024-08-10 64425/week @ 2024-08-17

每月 296,165 次下载
用于 1,526 个软件包 (96 直接)

MIT/Apache

48KB
688

rust-bitfield

此软件包提供宏以生成类似位字段的类结构体。

这是对 bitfield 软件包的完全重写。您可以在 rust-bitfield-legacy 仓库中找到先前版本。此版本在 rustc 的稳定版本上运行,并使用不同的语法和不同的可能性。

示例

IPv4 头部可以描述如下

bitfield!{
    struct IpV4Header(MSB0 [u8]);
    u32;
    get_version, _: 3, 0;
    get_ihl, _: 7, 4;
    get_dscp, _: 13, 8;
    get_ecn, _: 15, 14;
    get_total_length, _: 31, 16;
    get_identification, _: 47, 32;
    get_df, _: 49;
    get_mf, _: 50;
    get_fragment_offset, _: 63, 51;
    get_time_to_live, _: 71, 64;
    get_protocol, _: 79, 72;
    get_header_checksum, _: 95, 79;
    get_source_address, _: 127, 96;
    get_destination_address, _: 159, 128;
}

在此示例中,所有字段都是只读的,_ 作为设置器名称表示跳过设置器方法。最后的范围(例如 3, 0)定义了信息编码的位范围。

文档

已发布版本的文档可在 doc.rs 上找到。

许可证

许可方式如下

任选其一。

贡献

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证的定义,将如上双许可,而无需任何附加条款或条件。

无运行时依赖