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