3 个版本

0.1.2 2023年7月17日
0.1.1 2023年7月16日
0.1.0 2022年8月10日

#3 in #predicates

BSD-3-Clause 许可协议

55KB
784 行(不含注释)

bittersweet

Crates.io codecov License

Bittersweet 是一个用于位操作的库。

动机

位运算常用于底层编程,有时会包含魔法般的问题。我希望用更

  • 类型安全的
  • 经过充分测试的
  • 有良好文档的
  • 快速且高效的

用法

安装

您可以通过 cargo 安装此库。

$ cargo add bittersweet

或者您可以将此添加到您的 Cargo.toml 中。

示例

use bittersweet::bitline::{Bitline, Bitline8};
fn main() {
    let t = 0b00111000_u8 as Bitline8;
    if t.includes(0b00110000_u8) {
        println!("Yes!");
    }
}

支持的位线长度

以下 Bitline 特性实现了 u8u16u32u64u128。因此,这些操作保持了零成本抽象。

  • Bitline8 ... 8 位(u8
  • Bitline16 ... 16 位(u16
  • Bitline32 ... 32 位(u32
  • Bitline64 ... 64 位(u64
  • Bitline128 ... 128 位(u128

文档

请参阅 docs.rs

操作

https://docs.rs/bittersweet/latest/bittersweet/bitline/trait.Bitline.html

  • as_empty
  • as_full
  • by_range
  • bytes_length
  • length
  • is_empty
  • is_not_empty
  • is_full
  • is_not_full
  • first_index
  • last_index
  • radius
  • around
  • with_around
  • first_bit
  • last_bit
  • first_bits
  • last_bits
  • filled_first_bit_to_last_bit
  • num_bits
  • bit_repr
  • range
  • includes
  • overlaps
  • range
  • remove

许可协议

BSD-3-Clause 许可协议

无运行时依赖