6 releases

0.3.0 Nov 17, 2024
0.2.3 Oct 26, 2024
0.2.1 Jul 12, 2024
0.1.0 Jul 2, 2024

#927 in Data structures

Download history 5/week @ 2024-09-18 20/week @ 2024-09-25 149/week @ 2024-10-16 121/week @ 2024-10-23 17/week @ 2024-10-30 11/week @ 2024-11-06 89/week @ 2024-11-13 29/week @ 2024-11-20 3/week @ 2024-11-27

135 downloads per month

MIT license

28KB
575 lines

bitvek

Crates.io Documentation License: MIT

Say, we have a bit vector —

it's nothing better than a Vec<bool>, but …

what if we implement it,

and save some poor bits of memory?

Quick Start

use bitvek::bitvec;

let vec = bitvec![
    true, true, true, true, false, false, false, false,
    false, false, false, false, true, true, true, true,
];

Find it cumbersome? Try this:

// requires the total number of bits to be a multiple of 8
let vec = bitvec![0b11110000, 0b00001111];

Memory Efficiency

To achieve memory savings, the total number of bits stored must exceed twice the machine word the size in bytes, corresponding to 8 for 32-bit systems and 16 for 64-bit systems.


lib.rs:

Say, we have a bit vector ---

it's nothing better than a Vec<bool>, but ...

what if we implement it,

and save some poor bits of memory?

Quick Start

use bitvek::bitvec;

let vec = bitvec![
    true, true, true, true, false, false, false, false,
    false, false, false, false, true, true, true, true,
];

Find it cumbersome? Try this:

#
// requires the total number of bits to be a multiple of 8
let vec = bitvec![0b11110000, 0b00001111];

Memory Efficiency

To achieve memory savings, the total number of bits stored must exceed twice the machine word the size in bytes, corresponding to 8 for 32-bit systems and 16 for 64-bit systems.

No runtime deps