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