#bits #bit #int

no-std intbits

Easy access to individual bits of integers

2 unstable releases

0.2.0 Sep 29, 2020
0.1.2 Feb 17, 2020
0.1.1 Sep 27, 2019
0.1.0 Sep 27, 2019

#110 in No standard library

Download history 1395/week @ 2024-01-03 1880/week @ 2024-01-10 2058/week @ 2024-01-17 1416/week @ 2024-01-24 2507/week @ 2024-01-31 1745/week @ 2024-02-07 2945/week @ 2024-02-14 2453/week @ 2024-02-21 2186/week @ 2024-02-28 1767/week @ 2024-03-06 2190/week @ 2024-03-13 1799/week @ 2024-03-20 2139/week @ 2024-03-27 1731/week @ 2024-04-03 2209/week @ 2024-04-10 2025/week @ 2024-04-17

8,557 downloads per month
Used in 17 crates (2 directly)

BSD-2-Clause

14KB
330 lines

intbits

Easy access to individual bits of integers

use intbits::Bits;

assert_eq!(2.bit(0), false);
assert_eq!(2.bit(1), true);
assert_eq!(2.bit(2), false);

assert_eq!(0b1011u32.bits(0..2), 0b11);
assert_eq!(0b1011u32.bits(2..4), 0b10);

assert_eq!(0xFFu8.with_bit(3, false), 0xF7);
assert_eq!(0xFFu8.with_bits(4..8, 3), 0x3F);

See the documentation.


lib.rs:

This crates provides two functions for accessing the individual bits of integers:

It also provides similar functions for changing specific bits of integers:

These variants return a new integer, instead of modifying it:

Example

use intbits::Bits;

assert_eq!(2.bit(0), false);
assert_eq!(2.bit(1), true);
assert_eq!(2.bit(2), false);

assert_eq!(0b1011u32.bits(0..2), 0b11);
assert_eq!(0b1011u32.bits(2..4), 0b10);

assert_eq!(0xFFu8.with_bit(3, false), 0xF7);
assert_eq!(0xFFu8.with_bits(4..8, 3), 0x3F);

No runtime deps