Crate succinct [−] [src]
Succinct data structures for Rust.
This library is a very early work in progress. So far we have:
- integer vectors with arbitrary-sized (1- to 64-bit) elements;
- bit vectors and bit buffers,
- a variety of universal codes,
- constant-time rank queries; and
- O(lg lg n)-time select queries based on binary search over ranks.
Usage
It’s on crates.io, so you can add
[dependencies]
succinct = "0.3.0"
to your Cargo.toml
and
extern crate succinct;
to your crate root.
Modules
bit_vector |
Bit vector interfaces and implementations. |
coding |
Codes used for data compression. |
int_vector |
Bit-packed vectors of k-bit unsigned integers. |
rank |
Support for fast rank queries. |
select |
Support for fast select queries. |
storage |
Traits for describing how bits and arrays of bits are stored. |
stream |
Bit-oriented streams for coding. |
Macros
impl_stack_only_space_usage! |
Structs
BinSearchSelect |
Performs a select query by binary searching rank queries. |
BitVec |
A bit vector implementation. |
IntVec |
A vector of k-bit unsigned integers, where k is determined at run time. |
JacobsonRank |
Add-on to |
Traits
BitVector |
Interface for full bit vector operations. |
Bits |
Interface for read-only bit vector operations. |
BitsMut |
Interface for mutable bit vector operations that don’t affect the length. |
IntVector |
Types that can be accessed as immutable arrays of integers of limited width. |
IntVectorMut |
Types that can be accessed as mutable arrays of integers of limited width. |
SpaceUsage |
Types that know how to compute their space usage. |