5个版本
0.2.1 | 2023年6月12日 |
---|---|
0.2.0 | 2023年6月5日 |
0.1.2 | 2023年6月3日 |
0.1.1 | 2023年6月3日 |
0.1.0 | 2023年6月3日 |
#1875 in 编码
每月 70 次下载
21KB
189 行
bit_seq
bit_seq 是一个方便的Rust包,它提供了一个用于创建位序列的进程宏。这个包简化了位序列的生成,提高了可读性并减少了潜在的错误。位序列可以直接指定,也可以通过十六进制值,或者通过标识符或具有特定长度的整数来指定。它在系统编程以及常见位操作的底层硬件或协议接口中特别有用。
功能
- 使用简单语法生成位序列
- 直接指定或通过十六进制值指定位序列
- 使用标识符或整数定义具有特定长度的位序列
- 在长度表达式中内插外部变量
- 编译为常见的位操作,因此使用此包不会增加运行时开销
用法
首先,在您的项目命令行中添加以下内容
cargo add bit_seq
然后,在您的Rust文件中导入该包
use bit_seq::bseq;
以下是一些使用 bseq
宏的示例
// Direct raw bit sequence
let t = bseq!(0110 01 0 1);
assert_eq!(t, 0b0110_01_0_1);
// Using hex values
let t = bseq!(01 0x1f);
assert_eq!(t, 0b01_0001_1111);
// Using value length expression
let t = bseq!(3:1 0 0xf:2);
assert_eq!(t, 0b1_0_11);
// Using variable length expression
let var = 0xf;
let t = bseq!(10 var:2);
assert_eq!(t, 0b10_11);
// Using mixed variable types
let var_64: u64 = 0xf;
let var_16: u16 = 0xf;
let t = bseq_8!(var_16:4 var_64:4);
assert_eq!(t, 0xff);
// Using unary operators
assert_eq!(bseq!(!0:6), 0b111111);
文档
您可以在此处查看完整的API文档。
贡献
欢迎为bit_seq做出贡献!请提交一个拉取请求或在此GitHub页面上创建一个问题。
许可证
本项目采用MIT许可证。
依赖项
~280–730KB
~17K SLoC