1 个不稳定版本
| 0.5.7 | 2024年6月14日 |
|---|
在 数据结构 中排名 846
每月下载量 724
在 2 个crate中使用(通过 kbnf)
140KB
3K SLoC
fixedbitset
Rust的一个简单的固定大小bitset容器。
请在此处阅读API文档
最近更改
- 0.5.7
- 0.5.6
- 修复了由于栈大小缩小而未实现Send/Sync的FixedBitset。
- 0.5.5(已撤回)
- #116:通过 @james7132 添加了对集合操作结果进行计数的函数(
union_count、intersection_count、difference_count、symmetric_difference_count)。 - #118:减小FixedBitset的栈大小。与Vec相比,应没有栈大小开销。
- #119:修复wasm32的构建。
- #120:添加更多之前在公共接口中缺失的实用函数:
contains_any_in_range、contains_all_in_range、minimum、maximum、is_full、count_zeroes和remove_range。 - #121:添加对SIMD加速的AVX构建的支持。
- #116:通过 @james7132 添加了对集合操作结果进行计数的函数(
- 0.5.4
- #112:通过 @SkiFire13 修复了IntoOnes中的未定义行为,并使用MIRI设置了测试。
- 0.5.3(已撤回)
- #109:通过 @james7132 修复了非x86(_64)的构建。
- 0.5.2(已撤回)
- #86:通过 @james7132 对集合操作进行了显式的SIMD向量化。
- 0.5.1
- #102:通过 @james7132 添加了不安全函数的安全版本,包括
contains_unchecked、insert_unchecked、put_unchecked、set_unchecked、toggle_unchecked、removed_unchecked和copy_bit_unchecked。 - #103:通过 @james7132 添加了
into_ones,它返回一个从bitset中获取所有值的拥有迭代器。 - #104:实现了对
DoubleEndedIterator的支持,用于Union、Intersection、Difference和SymmetricDifference,由 @james7132 实现。
- #102:通过 @james7132 添加了不安全函数的安全版本,包括
- 0.5.0
- #74:通过使用更大的内部块加速集合操作(并集、交集、差集、对称差集),由 @james7132 实现。
- #88:由 @james7132 添加了
FixedBitSet::remove。 - #89:由 @james7132 添加了
FixedBitSet::zeros和Zeros迭代器。 - #92:由 @shuoli84 添加了
FixedBitSet::grow_and_insert函数,这是insert的一个非panic版本,根据需要增长底层存储。 - #98:现在
Ones实现了DoubleEndedIterator,由 @tikhu 实现。 - #99:破坏性变更:serde 现在从小端编码的原始字节数据缓冲区进行序列化和反序列化。现有的序列化位集实例需要重新编码。
- 将 MSRV 提升至 1.56。
- 0.4.2
- #79:添加了
is_clear,由 @nicopap 澄清了is_empty和len的文档。
- #79:添加了
- 0.4.1
- 文档和格式化修复。
- 0.4.0
- 0.3.2
- #18:通过使用
trailing_zeroes优化ones,由 @vks 实现。
- #18:通过使用
- 0.3.1
- 由 @flaghacker 添加了位赋值运算符。
- 由 @lovasoa 改进了断言错误信息。
- 为
with_capacity_and_blocks添加了文档示例。
- 0.3.0
- 由 @luizirber 添加了
with_capacity_and_blocks。 - 由 @sunshowers 添加了
difference_with。 - 由 @Dolphindalt 实现了
Binary和Display特性。 - 由 @wirelyre 添加了
toggle_range。
- 由 @luizirber 添加了
- 0.2.0
- 由 @jrraymond 添加了位操作赋值运算符。
- 由 @jrraymond 添加了
symmetric_difference、union_with和intersection_with。 - 由 @nwn 添加了
is_subset、is_superset和is_disjoint。 - 由 @ShiroUsagi-san 添加了
.toggle(i)方法。 - 通过 @jonimake 和 @bluss 添加默认功能 "std",可以通过禁用它来使 crate 不链接 std 库。
- 需要 Rust 1.31。
- 0.1.9
- 由 @jrraymond 添加了交集、并集、差集迭代器。
- 由 @jrraymond 添加了交集运算符
&和并集运算符|的实现。 - 由 @jrraymond 添加了扩展和
FromIterator实现(从位索引的序列中)。
- 0.1.8
- 在ones迭代器上添加缺失的
#[inline] - 修复
insert_range, set_range的文档
- 在ones迭代器上添加缺失的
- 0.1.7
- 添加由@kennytm提供的快速方法
.insert_range,.set_range
- 添加由@kennytm提供的快速方法
- 0.1.6
- 添加由@mneumann提供的迭代器
.ones() - 修复了
.count_ones()的bug,该bug会导致偶数块端点越界恐慌
- 添加由@mneumann提供的迭代器
- 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.0或MIT许可,任选其一。本文件不得根据这些条款以外的任何条款进行复制、修改或分发。
依赖项
~170KB