#bitset #container #bitvec #fixed-size #set-operations #no-std

no-std fixedbitset

FixedBitSet是一个简单的bitset集合

27个发布版本

0.5.7 2024年4月14日
0.5.6 2024年3月22日
0.5.0 2024年2月26日
0.4.2 2022年7月3日
0.0.5 2015年5月31日

#71 in 数据结构

Download history 931822/week @ 2024-04-28 950020/week @ 2024-05-05 1019701/week @ 2024-05-12 988631/week @ 2024-05-19 964939/week @ 2024-05-26 1119792/week @ 2024-06-02 1118645/week @ 2024-06-09 1097285/week @ 2024-06-16 1113667/week @ 2024-06-23 1041558/week @ 2024-06-30 1141619/week @ 2024-07-07 1117423/week @ 2024-07-14 1112126/week @ 2024-07-21 1103363/week @ 2024-07-28 1099199/week @ 2024-08-04 1104167/week @ 2024-08-11

4,481,067 每月下载量
用于 5,711 个crate(80 个直接)

MIT/Apache

84KB
2K SLoC

fixedbitset

Rust的一个简单固定大小的bitset容器。

请在此处阅读API文档

build_status crates

最近更改

  • 0.5.7
    • #127#128:优化 Clone::clone_from 以避免额外的分配和复制。
  • 0.5.6
    • 修复了由于栈大小缩小导致FixedBitset未实现Send/Sync的问题。
  • 0.5.5 (已撤回)
    • #116:添加了计算集合操作结果(union_countintersection_countdifference_countsymmetric_difference_count)的函数,由@james7132提供。
    • #118:减小FixedBitset的栈大小。与Vec相比,应该没有栈大小开销。
    • #119:修复wasm32的构建问题。
    • #120:添加更多之前从公共接口中缺失的实用函数:contains_any_in_rangecontains_all_in_rangeminimummaximumis_fullcount_zeroesremove_range
    • #121:为AVX构建添加SIMD加速支持。
  • 0.5.4
    • #112:修复IntoOnes中的未定义行为,并通过MIRI设置测试,由@SkiFire13提供。
  • 0.5.3 (已撤回)
    • #109:修复非x86(_64)构建问题,由@james7132提供。
  • 0.5.2 (已撤回)
    • #86:为集合操作显式进行SIMD向量化,由@james7132提供。
  • 0.5.1
    • #102: 由 @james7132 添加了安全函数的不可安全变体,包括 contains_uncheckedinsert_uncheckedput_uncheckedset_uncheckedtoggle_uncheckedremoved_uncheckedcopy_bit_unchecked
    • #103: 由 @james7132 添加了 into_ones,它返回一个包含bitset中所有一位值的所有者迭代器。
    • #104: 由 @james7132 实现了 DoubleEndedIterator 用于 UnionIntersectionDifferenceSymmetricDifference
  • 0.5.0
    • #74: 由 @james7132 通过使用更大的内部块加速了集合操作(并集、交集、差集、对称差集)。
    • #88: 由 @james7132 添加了 FixedBitSet::remove
    • #89: 由 @james7132 添加了 FixedBitSet::zerosZeros 迭代器。
    • #92: 由 @shuoli84 添加了 FixedBitSet::grow_and_insert 函数,这是 insert 的非恐慌版本,它根据需要增长底层存储。
    • #98: 由 @tikhu 使 Ones 实现 DoubleEndedIterator
    • #99: 重大变更:serde 现在从小端编码的原始字节数据缓冲区进行序列化和反序列化。现有的序列化bitset实例需要重新编码。
    • 将 MSRV 升级到 1.56。
  • 0.4.2
    • #79: 由 @nicopap 添加了 is_clear,并澄清了 is_emptylen 文档。
  • 0.4.1
    • 文档和格式修复。
  • 0.4.0
    • #61: 需要 Rust 1.39。
    • #60: 由 @jakobhellermann 添加了 const 构造函数 FixedBitSet::new
    • #59: 由 @keshavsn 添加了可选的 serde 支持。
  • 0.3.2
    • #18: 由 @vks 使用 trailing_zeroes 优化了 ones
  • 0.3.1
    • 由 @flaghacker 添加了对引用的位赋值运算符。
    • 由 @lovasoa 改进了断言错误消息。
    • with_capacity_and_blocks 添加了文档示例。
  • 0.3.0
    • 由 @luizirber 添加了 with_capacity_and_blocks
    • 由 @sunshowers 添加了 difference_with
    • 由 @Dolphindalt 实现了 BinaryDisplay 特性。
    • 由 @wirelyre 添加了 toggle_range
  • 0.2.0
    • 由 @jrraymond 添加了位运算的赋值运算符。
    • 由 @jrraymond 添加了 symmetric_differenceunion_withintersection_with
    • 由 @nwn 添加了 is_subsetis_supersetis_disjoint
    • 由 @ShiroUsagi-san 添加了方法 .toggle(i)
    • 通过 @jonimake 和 @bluss 添加默认功能 "std",可以禁用它以使包不链接 std 库。
    • 需要 Rust 1.31。
  • 0.1.9
    • 由 @jrraymond 添加了交集、并集、差集迭代器。
    • 添加交集操作符实现:& 和并集操作符实现:|,由 @jrraymond 提供
    • 由 @jrraymond 添加 Extend 和 FromIterator 实现(来自位索引序列)
  • 0.1.8
    • 在 ones 迭代器上添加缺失的 #[inline]
    • 修复 insert_range, set_range 的文档
  • 0.1.7
    • 由 @kennytm 添加快速方法:.insert_range.set_range
  • 0.1.6
    • 由 @mneumann 添加迭代器:.ones()
    • 修复 .count_ones() 中的错误,其中偶数块端点会导致越界恐慌
  • 0.1.5
    • 添加方法 .count_ones(range)
  • 0.1.4
    • .copy_bit(from, to) 中移除一个断言,使其与文档一致。from 位不需要在范围内。
    • 改进 .grow(),使其使用 Vec::resize 内部。
  • 0.1.3
    • 添加方法 .put() 以启用位并返回前一个值
  • 0.1.2
    • 添加方法 .copy_bit()(由 fuine 提供)
    • 实现 Default
  • 0.1.1
    • 更新文档 URL
  • 0.1.0
    • 添加方法 .grow()

许可证

双授权以与 Rust 项目兼容。

许可协议为 Apache License, Version 2.0MIT 许可证,任选其一。此文件不得根据这些条款以外的任何条款复制、修改或分发。

依赖项

~170KB