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 数据结构
4,481,067 每月下载量
用于 5,711 个crate(80 个直接)
84KB
2K SLoC
fixedbitset
Rust的一个简单固定大小的bitset容器。
请在此处阅读API文档
最近更改
- 0.5.7
- 0.5.6
- 修复了由于栈大小缩小导致FixedBitset未实现Send/Sync的问题。
- 0.5.5 (已撤回)
- #116:添加了计算集合操作结果(
union_count、intersection_count、difference_count、symmetric_difference_count)的函数,由@james7132提供。 - #118:减小FixedBitset的栈大小。与Vec相比,应该没有栈大小开销。
- #119:修复wasm32的构建问题。
- #120:添加更多之前从公共接口中缺失的实用函数:
contains_any_in_range、contains_all_in_range、minimum、maximum、is_full、count_zeroes和remove_range。 - #121:为AVX构建添加SIMD加速支持。
- #116:添加了计算集合操作结果(
- 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_unchecked、insert_unchecked、put_unchecked、set_unchecked、toggle_unchecked、removed_unchecked、copy_bit_unchecked。 - #103: 由 @james7132 添加了
into_ones,它返回一个包含bitset中所有一位值的所有者迭代器。 - #104: 由 @james7132 实现了
DoubleEndedIterator用于Union、Intersection、Difference和SymmetricDifference。
- #102: 由 @james7132 添加了安全函数的不可安全变体,包括
- 0.5.0
- #74: 由 @james7132 通过使用更大的内部块加速了集合操作(并集、交集、差集、对称差集)。
- #88: 由 @james7132 添加了
FixedBitSet::remove。 - #89: 由 @james7132 添加了
FixedBitSet::zeros和Zeros迭代器。 - #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_empty和len文档。
- #79: 由 @nicopap 添加了
- 0.4.1
- 文档和格式修复。
- 0.4.0
- 0.3.2
- #18: 由 @vks 使用
trailing_zeroes优化了ones。
- #18: 由 @vks 使用
- 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",可以禁用它以使包不链接 std 库。
- 需要 Rust 1.31。
- 0.1.9
- 由 @jrraymond 添加了交集、并集、差集迭代器。
- 添加交集操作符实现:
&和并集操作符实现:|,由 @jrraymond 提供 - 由 @jrraymond 添加 Extend 和 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()中的错误,其中偶数块端点会导致越界恐慌
- 由 @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